2017-05-03 28 views
2

尽管试图阅读“javascript的忍者的秘密”(好吧,也许我还没有资格阅读本书),但我看到下面的代码,我明白代码在做什么,但第一部分真的不明白是函数(索引)被调用的地方。索引是任意的术语还是某种javascript来表示泛型索引?在javascript中的函数索引

<script type="text/javascript"> 
    function forEach(list,callback) { 
    for (var n = 0; n < list.length; n++) { 
     callback.call(list[n],n); 
    } 
} 
    var weapons = ['shuriken','katana','nunchucks']; 
    forEach(
    weapons, 
    function(index){ 
     function 

   assert(this == weapons [index], 
      "Got the expected value of " + weapons [index]); 
}); 
</script> 

回答

2

它作为第二个参数传递给forEach

forEach(list,callback) 

...一个叫callback变量。

所以这里叫:

callback.call(list[n],n); 
通过 call method


是指数任意条款或某种JavaScript来表明通用指标?

这是一个参数名称。你自己定义了这个名字。它通过的值是在您调用该函数时确定的。

1

index它是在回调的执行上下文中可用的变量的别名,因此可用于调用者,名称可以是任何。

这是一个用作 first class function(JavaScript中至关重要的概念)的函数的示例,它将它们作为对象传递以定义自定义行为。