指向对象函数的Javascript函数指针错误抛出错误:TypeError:can';t将未定义的转换为对象
我现在开始阅读javascript,我想知道为什么下面的代码会引发错误:指向对象函数的Javascript函数指针错误抛出错误:TypeError:can';t将未定义的转换为对象,javascript,Javascript,我现在开始阅读javascript,我想知道为什么下面的代码会引发错误: a = [0,1,2,3]; x = a.pop; x(); (抛出错误:TypeError:无法将未定义的转换为对象) 虽然以下代码工作正常: x = console.log x("hello"); 这两者有什么区别?还有,我有什么方法可以将对a.pop的可调用引用存储在变量中吗?关于@Teemu所说的,没有什么可以补充的了,他回答得更快了,但这里有一个片段,您可以扩展他的评论,下面的片段使用函数添加一个上下文,其中
a = [0,1,2,3];
x = a.pop;
x();
(抛出错误:TypeError:无法将未定义的转换为对象
)
虽然以下代码工作正常:
x = console.log
x("hello");
这两者有什么区别?还有,我有什么方法可以将对
a.pop
的可调用引用存储在变量中吗?关于@Teemu所说的,没有什么可以补充的了,他回答得更快了,但这里有一个片段,您可以扩展他的评论,下面的片段使用函数添加一个上下文,其中.pop()
应该应用于,也可以使用.apply()
设a=[0,1,2,3];
常数x=a.pop;
x、 电话(a);
控制台日志(a);
x、 适用(a);
控制台日志(a)
关于@Teemu所说的,没有什么需要补充的了,他回答得更快了,但这里有一个片段,您可以在他的评论上展开,下面的片段使用函数添加一个上下文,其中应应用.pop()
,也可以使用.apply()
设a=[0,1,2,3];
常数x=a.pop;
x、 电话(a);
控制台日志(a);
x、 适用(a);
控制台日志(a)
x
是对a.pop
方法的引用。当调用数组的pop
方法(数组原型中的函数对象)时,它需要一个对象作为上下文,但是当您在没有上下文的情况下调用该方法时,会触发错误console.log
不需要上下文,这就是它“单独”工作的原因。出于好奇:是否有任何方法提供上下文,例如sox.pop(a)
(这不起作用,但是否存在类似情况)?x
是对a.pop
方法的引用。当调用数组的pop
方法(数组原型中的函数对象)时,它需要一个对象作为上下文,但是当您在没有上下文的情况下调用该方法时,会触发错误console.log
不需要上下文,这就是它“单独”工作的原因。出于好奇:是否有任何方法提供上下文,例如sox.pop(a)代码>(这不起作用,但是否存在类似情况)?