我想用标题说的是:
在以下方面是否存在差异:
argument = [arg1, arg2, arg3];
Foo.bar.apply(Foo, argument);
与之相比:
Foo.bar(arg1, arg2, arg3);
除了显而易见的(争论还是非争论)?
对同一方法(bar)使用以下两种不同的“调用”方法的原因是什么?我知道apply与调用对象有关,但是在这种情况下有什么不同吗?
给出了很多关于申请的信息,但是我还没有找到一个很好的答案来解释为什么要通过“我自己”。
更长的故事:
/* This is the bar method in CFoo class */
CFoo.pr
请告诉我,this.init.apply(this, arguments)在下面的代码中做了什么?
我通常理解apply()的作用,但在下面代码的上下文中,它在其中做了什么?
var Class = function() {
var klass = function() {
this.init.apply(this, arguments); //I don't really get this bit...
};
klass.prototype.init = function(){};
return klass;
};
var Pe
我只是想知道jQuery是如何能够劫持Javascript中的“this”关键字的。从我正在读的书"Javascript the Definitive Guide“中可以看出,"this”是一个关键字,你不能像使用标识符那样对它进行修改。
现在,假设你在你自己的对象构造函数中,你调用了一些jQuery代码,它怎么能够从你那里劫持它呢?
function MyObject(){
// At this point "this" is referring to this object
$("div").each(function(){
继续这个问题,。我正在Firebug中调试它。
function Fred() {
this.a = 1;
function foo() {
if (a == 1) {
a++;
}
var e = 0;
}
this.bar = function () {
var a = 3;
foo();
};
}
从一个超文本标记语言文件中,我创建了一个新的Fred实例并调用bar()。在Firebug中,在调用bar()时,我可以在监视视图中看到this是我的
查看PHP中关于接口的文档,特别是这里:。下面的代码是作为工作示例给出的。有人能解释一下被声明为函数签名一部分的赤裸裸的“Baz”是什么?
<?php
interface a
{
public function foo();
}
interface b extends a
{
public function baz(Baz $baz);
}
// This will work
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
假设我们有一个功能
f = function(a, b, c){
// do something important
}
和包含参数的数组
var args = [5, 'string', 12] // just any values
显然,我可以这样称呼我的函数:
f(args[0], args[1], args[2])
这真的不优雅,我想找一个更好的方法来实现这一点。谢谢你的建议。