为什么不能通过将JavaScript的功能分配给另一个变量来克隆它?

例如:

var $ = document.getElementById;


使用尝试:

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


我认为它只会复制功能,并且仍然可以调用。 有人可以解释为什么吗?

===============>>#1 票数:4 已采纳

当仅将document.getElementById分配给变量时,您会失去this === document部分,这通常是您在将其作为document方法调用时具有的。 为了避免这种情况,请使用.bind()显式设置函数使用的this上下文:

var $ = document.getElementById.bind(document);

  ask by Web_Designer translate from so

未解决问题?本站智能推荐: