javascript:通过将函数分配给变量来克隆函数

标签 javascript function object

为什么我不能通过将 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/

相关文章:

javascript - 在 Bootstrap 模式内制作绘图应用程序

javascript - 在 SVG 中嵌入 SVG

c++ - void ** 函数参数中的指针 c++

javascript - 在javascript中向数组元素添加属性

javascript - get 和 set 在 javascript 背后的想法是什么?

javascript - 谷歌审计问题

javascript - 设置元素的 margin-left 和 width 以匹配另一个元素的 margin 和 size

r - R 中的函数比 apply(..., ..., range) 快

c++ - 如何在多个函数中使用结构

c++ - 谁在虚拟继承中调用构造函数?