在jQuery 1.4.4中,如果我在Google Chrome控制台中执行此操作:
var divs = $('div');
Run Code Online (Sandbox Code Playgroud)
...我得到的东西似乎是一个DOM元素数组.但我知道它必须是一个jQuery对象,因为我可以链接jQuery方法:
divs.hide('slow').show('slow'); // etc
Run Code Online (Sandbox Code Playgroud)
我想看到的是jQuery对象,其中包含.fn列出其所有方法的属性等.我很确定我曾经能够看到这个.
如果我创建自己的对象,像这样:
var foo = {species: 'marmot', flavor: 'lemon'}
Run Code Online (Sandbox Code Playgroud)
...我可以在控制台中挖掘它的属性.
如何在控制台中检查jQuery对象?
另外,为了使它看起来像一个数组,正在做些什么?
如果我加载旧版本的jQuery - 例如,将其复制并粘贴到我的控制台中的空白选项卡中:
http://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js
......然后我这样做:
var divs = $('div');
Run Code Online (Sandbox Code Playgroud)
...我确实回来了jQuery.fn.jQuery.init,我可以在控制台中深入了解.从那时起,事情发生了变化.
在PHP中,类如何引用自己的名称?
例如,该方法会是什么样的?
Dog::sayOwnClassName();
//echos "Dog";
Run Code Online (Sandbox Code Playgroud)
我看到每个人都在说get_class($this).但这不正确.如果我创建一个Dog 实例,那将会有效.我问的是调用Dog类本身的方法.如果是Dogextends Mammal,那么get_class($this)对Dog类内部的调用将返回'Mammal'.
换一种说法:
例如:
class Mammal {
public function find_by_id($id){
$query = "SELECT * FROM " . $myclass . " WHERE `id` = " . $id;
//(etc)
return $matching_object;
}
}
class Dog extends Mammal {
//find_by_id method should know to do a SELECT from Dog table
}
Run Code Online (Sandbox Code Playgroud)
Yacoby的建议get_called_class()是正确的.以下是我给出的示例中的工作原理.
class Mammal {
public function find_by_id($id){
$myclass …Run Code Online (Sandbox Code Playgroud) 给定PHP中类的字符串名称,如何访问其中一个静态变量?
我想做的是:
$className = 'SomeClass'; // assume string was actually handed in as a parameter
$foo = $className::$someStaticVar;
Run Code Online (Sandbox Code Playgroud)
...但PHP给了我一个可爱的"解析错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM",这显然是双冒号(::)的希伯来名字.
更新:不幸的是,我必须使用PHP 5.2.X.
更新2:正如MrXexxed猜测的那样,静态变量是从父类继承的.
我正在使用有效记录.让我们称之为产品型号.如何使用活动记录从"tbl_product"中选择"%发球%"这样的名称来选择最小值(价格)?
如何定义在FactoryGirl工厂中使用的常规方法?例如:
FactoryGirl.define do
def silly_horse_name
verbs = %w[brunches dribbles haggles meddles]
nouns = %w[landmines hamlets vandals piglets]
"#{verbs.sample} with #{nouns.sample}".titleize
end
factory :racehorse do
name { silly_horse_name } # eg, "Brunches with Landmines"
after_build do |horse, evaluator|
puts "oh boy, I built #{silly_horse_name}!"
end
end
end
Run Code Online (Sandbox Code Playgroud)
这样做根本不打电话silly_horse_name; 如果重新定义raise 'hey!',没有任何反应.
我正在使用FactoryGirl 2.5.2.
我正在尝试调试一些代码.一个奇怪的部分是before_save回调被调用两次,尽管我只打算保存一次对象.
为了追踪这种情况,我在课堂上定义了这些方法:
%w[save save!].each do |method_name|
define_method(method_name) do |*args|
puts "who called '#{method_name}'? #{caller.first}"
super(*args)
end
end
Run Code Online (Sandbox Code Playgroud)
从这个输出中,我只看到一个持久性调用.
我相信,save和save!是导致ActiveRecord的持久化对象的唯一方法.据我所知,其他持久性方法依赖于这两者之一; 例如,update_attributes电话save,update_attributes!电话save!等
是否有任何方法持有ActiveRecord对象而不调用save或save!?
(我正在使用ActiveRecord 3.2.13)
查看3.2.13的Rails源代码,保存并保存!调用私有方法create_or_update来完成他们的工作.我曾经git grep寻找其他事件,create_or_update并且只找到了测试和callbacks.rb包装它的东西.
create_or_update反过来,依赖klass.connection.update和self.class.unscoped.insert.
所以问题可能是除了create_or_update持久存在ActiveRecord对象之外还有什么.
如何在Elixir中获得列表的排列?
例如,["a", "b", "c"]我希望:
# [["a", "b", "c"], ["a", "c", "b"],
# ["b", "a", "c"], ["b", "c", "a"],
# ["c", "a", "b"], ["c", "b", "a"]]
Run Code Online (Sandbox Code Playgroud) 当您分支一些代码时,完成分支的工作,并将其合并回主干,您如何处理分支?从存储库中删除它?保留供参考?
看起来你会把它作为参考,但我想这个/branches目录可能会变得混乱.
(如果这不是人们普遍认同的,请发表评论,我会将其作为社区维基.)
jleedev 是对的 - 我们应该指定我们正在谈论的版本控制系统.
我考虑过Subversion,但也希望听到有关其他系统的回复.请说明您正在回答哪一个,或者,如果您想获得接受的答案<贿赂> <bribery>,请比较和对比几个系统.
我正在阅读Jesse Storimer的优秀着作"使用Unix进程".在一个关于从已经退出的子进程捕获信号的部分中,他给出了一个代码示例.
我稍微修改了这段代码(见下文),以便更清楚地了解正在发生的事情:
puts),wait在一个多子女执行trap的语句(有时我得到"接到CHLD信号"一次,然后由多个"子PID退出").通常,下面代码的输出类似于:
parent is working hard
Received a CHLD signal
child pid 73408 exited
parent is working hard
parent is working hard
parent is working hard
Received a CHLD signal
child pid 73410 exited
child pid 73409 exited
All children exited - parent exiting too.
Run Code Online (Sandbox Code Playgroud)
但有一段时间我得到这样的错误:
trapping_signals.rb:17:in `write': deadlock; recursive locking (ThreadError)
from trapping_signals.rb:17:in `puts'
from trapping_signals.rb:17:in `puts'
from trapping_signals.rb:17:in `block in <main>'
from trapping_signals.rb:17:in `call' …Run Code Online (Sandbox Code Playgroud) 我刚刚写了一个小的Rust程序,它计算Fibonacci数并记住计算.它有效,但我有点困惑为什么,特别是递归调用.(它也可能不是惯用的.)
这是程序:
use std::collections::HashMap;
fn main() {
let n = 42; // hardcoded for simplicity
let mut cache = HashMap::new();
let answer = fib(n, &mut cache);
println!("fib of {} is {}", n, answer);
}
fn fib(n: i32, cache: &mut HashMap<i32,i32>) -> i32 {
if cache.contains_key(&n) {
return cache[&n];
} else {
if n < 1 { panic!("must be >= 1") }
let answer = if n == 1 {
0
} else if n == 2 {
1
} else …Run Code Online (Sandbox Code Playgroud)