在 JavaScript 中,您可以设置变量来保存某些函数并使用它们,如下所示:
var log = console.log;
log('foo');
但由于某些奇怪的原因,如果不是所有文档方法,您不能对大多数文档方法执行此操作,例如 querySelector
:
var select = document.querySelector;
// causes the error: Uncaught TypeError: Illegal invocation
select('p');
<p>...</p>
为什么会这样,是否有解决方法?
最佳答案
语境似乎迷失了。它不与 文档
绑定(bind)。以这种方式使用它:
var select = document.querySelector.bind(document);
// Works!
console.log(select('p'));
<p>...</p>
您可以在 JavaScript 中查看绑定(bind)到的函数:What object javascript function is bound to (what is its "this")? .
关于javascript - 为什么不能将文档方法保存在函数中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53990598/