我正在尝试自学Javascript,但我似乎陷入了相当基本的一步。 我的参考书说:
“apply可用于传递
this
关键字的对象 指向“。
我首先开始:
var a = 50;
var foo = function() {
return this.a;
}
当我foo()
时,我按预期得到50
。然后我按如下方式尝试apply
:
foo.apply({a : "blah"});
当我再次foo()
时,我仍然会得到50
而不是blah
正如我所期待的那样。
似乎apply
未成功将this
关键字指向{a : "blah"}
对象。
我几乎可以肯定我误会了什么。你能帮忙澄清一下吗?
答案 0 :(得分:3)
apply()
方法不会以任何方式修改函数;它只是用指定的this
调用函数。
您可以使用bind()
创建一个始终使用指定的this
调用原始内容的新功能:
var myFoo = foo.bind({ a: 'blah' });
myFoo();