javascript:通过将函数赋值给变量来克隆函数

时间:2013-04-17 21:37:41

标签: javascript function object

为什么我不能通过将函数分配给另一个变量来克隆javascript函数?

E.g:

var $ = document.getElementById;


使用尝试:

typeof $;  //--> "function"
$('nav');  //--> "TypeError: Illegal invocation"


我认为它只是复制函数,仍然可以调用。 有人可以解释为什么不呢?

1 个答案:

答案 0 :(得分:4)

只需将document.getElementById分配给变量,就会失去this === document部分,而document部分通常会将this作为var $ = document.getElementById.bind(document); 的方法。为避免这种情况,请使用.bind()显式设置函数使用的{{1}}上下文:

{{1}}