为什么我不能通过将 JavaScript 中的函数分配给另一个变量来克隆该函数?
例如:
var $ = document.getElementById;
使用尝试:
typeof $; //--> "function"
$('nav'); //--> "TypeError: Illegal invocation"
我认为它只是复制该函数,并且仍然可以调用。
有人能解释一下为什么不吗?
最佳答案
当仅将 document.getElementById
分配给变量时,您会丢失 this === document
部分,而在将其作为 的方法调用时通常会拥有该部分>文档
。为了避免这种情况,请使用 .bind()
显式设置函数使用的 this
上下文:
var $ = document.getElementById.bind(document);
关于javascript:通过将函数分配给变量来克隆函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070695/