Javascript函数指针指向对象函数错误抛出错误: TypeError: can't convert undefined to object

标签 javascript

我目前正在开始阅读 JavaScript,我想知道为什么以下代码会抛出错误:

a = [0,1,2,3];
x = a.pop;
x();

(抛出错误:TypeError:无法将 undefined 转换为对象)。

虽然下面的代码工作得很好:

x = console.log
x("hello");

这两者有什么区别?有什么方法可以在变量中存储对 a.pop 的可调用引用吗?

最佳答案

@Teemu 所说的没有什么可补充的,他回答得更快,但这里有一个片段,您可以在其中扩展他的评论,以下片段使用 call函数添加应应用 .pop() 的上下文,也可以使用 .apply()

let a = [0,1,2,3];
const x = a.pop;

x.call(a);
console.log(a);

x.apply(a);
console.log(a);

关于Javascript函数指针指向对象函数错误抛出错误: TypeError: can't convert undefined to object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60889434/

相关文章:

javascript - dom-repeat Polymer 中的 Firebase 数据

javascript - jQuery - 缩放字体大小以填充父 div 高度

javascript - 将多个 jQuery on click 函数重构为一个函数

javascript - pretty-print Haxe JS 输出

javascript - 根据列高亮显示不同颜色的表格行

javascript - ON 绑定(bind)过多递归

javascript - 为什么我收到 Chrome Native Messaging "Specified native messaging host not found."?

javascript - 引用 JSON 树结构分支的最佳方法是什么?

javascript - 可以在 Ext JS 中将 XML 响应作为流读取吗

javascript - 如何显示带有 Facebook Analytics 数据的仪表板