让我说我有一个函数对象(例如通过参数传递)。我想用函数调用存储在数组中的参数。这通常使用apply()
完成。
但是,apply()
还需要一个this
参数,我不知道。我可以以某种方式从函数对象中获取它吗?
答案 0 :(得分:2)
没有
this
的值取决于你如何调用函数,它不是函数的内在函数。
对于这种情况,我假设this
对象应该是window
(至少如果JS打算在浏览器中运行)并使其成为调用代码的责任使用bind
(或类似)来解决正常this
值的丢失问题。
答案 1 :(得分:1)
a)重写传入的函数,不依赖于它的调用上下文
b)调用namespace.func.bind(namespace);
获取具有永久“this”的函数副本。
我建议选项(a)。调用.bind()
的需要通常是需要纠正的反模式的证据。