在JavaScript中,您可以设置变量以容纳某些函数并使用它们,如下所示:
var log = console.log;
log('foo');
但是出于某些奇怪的原因,您无法在大多数(如果不是全部)文档方法(例如querySelector
)上执行该操作:
var select = document.querySelector;
// causes the error: Uncaught TypeError: Illegal invocation
select('p');
<p>...</p>
这是为什么,并且有解决方法吗?
答案 0 :(得分:2)
上下文似乎迷路了。它不受document
的约束。以这种方式使用它:
var select = document.querySelector.bind(document);
// Works!
console.log(select('p'));
<p>...</p>
您可以在JavaScript:What object javascript function is bound to (what is its "this")?中看到函数绑定的内容。