Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript call()函数_Javascript - Fatal编程技术网

JavaScript call()函数

JavaScript call()函数,javascript,Javascript,我从John Resig的书中开始学习纯JS,发现call()函数的示例非常不清楚: function forEach (list, callback) { for (var i = 0; i < list.length; i++) { callback.call(list[i],i) }; } var strings = [ 'hello', 'world', '!']; forEach(strings, function(index){ co

我从John Resig的书中开始学习纯JS,发现call()函数的示例非常不清楚:

function forEach (list, callback) {
    for (var i = 0; i < list.length; i++) {
        callback.call(list[i],i)
    };
}

var strings = [ 'hello', 'world', '!'];

forEach(strings, function(index){
    console.log(strings[index]);
});
函数forEach(列表,回调){ 对于(变量i=0;i
它是如何工作的?有人能解释一下吗?

调用
方法用于在特定上下文中调用函数(换句话说,使用
this
的特定值)。该示例在当前列表项的上下文中调用
回调
函数,并传入
i
的值:

forEach(strings, function(index){
    console.log(this); // "String ['hello']" etc...
    console.log(index); // "0" etc...
});

如果正常调用
回调
函数(没有
调用
方法),则上下文将是全局对象或
未定义的
(如果代码在严格模式下运行)。

您对调用了解多少?i、 你的出发点是什么?您是否阅读过文档,例如关于的文档?要调用的第一个参数是方法的
this
指针,第二个(以及后续)参数是作为参数传递给函数的参数。