使用apply传入this关键字的对象

时间:2014-07-31 20:41:54

标签: javascript

我正在尝试自学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"}对象。

我几乎可以肯定我误会了什么。你能帮忙澄清一下吗?

1 个答案:

答案 0 :(得分:3)

apply()方法不会以任何方式修改函数;它只是用指定的this调用函数。

您可以使用bind()创建一个始终使用指定的this调用原始内容的新功能:

var myFoo = foo.bind({ a: 'blah' });
myFoo();