如何检索功能'这个'宾语?

时间:2014-07-31 18:16:45

标签: javascript function

让我说我有一个函数对象(例如通过参数传递)。我想用函数调用存储在数组中的参数。这通常使用apply()完成。

但是,apply()还需要一个this参数,我不知道。我可以以某种方式从函数对象中获取它吗?

2 个答案:

答案 0 :(得分:2)

没有

this的值取决于你如何调用函数,它不是函数的内在函数。

对于这种情况,我假设this对象应该是window(至少如果JS打算在浏览器中运行)并使其成为调用代码的责任使用bind(或类似)来解决正常this值的丢失问题。

答案 1 :(得分:1)

你可以:

a)重写传入的函数,不依赖于它的调用上下文

b)调用namespace.func.bind(namespace);获取具有永久“this”的函数副本。

我建议选项(a)。调用.bind()的需要通常是需要纠正的反模式的证据。