call 和 apply 调用的 Javascript 函数无法处理参数
有人可以解释一下为什么下面的代码返回 undefined 2 次吗?
var test = function (theArr) {
alert(theArr);
};
test.call(6); //Undefined
var theArgs = new Array();
theArgs[0] = 6;
test.apply(theArgs) //Undefined
Can somebody please explain why the below code returns undefined 2 times ?
var test = function (theArr) {
alert(theArr);
};
test.call(6); //Undefined
var theArgs = new Array();
theArgs[0] = 6;
test.apply(theArgs) //Undefined
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JavaScript 调用方法的语法:
fun.call(object, arg1, arg2, ...)
JavaScript apply 方法的语法:
fun.apply(object, [argsArray])
主要区别在于 call() 接受参数列表,而 apply() 接受单个参数数组。
因此,如果您想调用一个打印某些内容并传递一个对象范围以供其执行的函数,您可以执行以下操作:
The syntax for the JavaScript call method:
fun.call(object, arg1, arg2, ...)
The syntax for the JavaScript apply method:
fun.apply(object, [argsArray])
The main difference is that call() accepts an argument list, while apply() accepts a single array of arguments.
So if you want to call a function which prints something and pass an object scope for it to execute in, you can do: