了解Javascript文档

时间:2015-02-17 20:35:57

标签: javascript

我知道这是一个愚蠢的问题所以请放轻松。 我无法理解一般的文档,例如本页: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

有人可以解释条款'回调' ' CurrentValue的' '指数' '阵列' (在这种情况下)和' thisArg'在非常基本的外行人?我确信这很简单,但它不会点击我的大脑,而且我自己学习语言非常困难,所以我非常感谢你的帮助。 / p>

4 个答案:

答案 0 :(得分:3)

我会尽量使它变得简单易懂。

回调函数作为参数传递给函数(如age在下面的示例中传递给foo)并在某个事件之后执行。它被称为回调,因为它不是在函数之前执行的(回调函数作为参数传递给它)本身被执行

例如:

function foo(age, function callBack()) {
    print("I am " + age + " years old");
}

function gender() {
    print(" and male");
}

function certainEvent() {
 foo(99, gender);
}

如果现在调用certainEvent(),结果将是:

I am 99 years old and male

答案 1 :(得分:2)

callback是您传递给地图的功能。它将使用参数currentValueindexarray进行调用。

例如使用记录的回调:

   [1, 2, 3].map(function(currentValue, index, array) {
        console.log("currentValue", currentValue);
        console.log("index", index);
        console.log("array", array);
   });

日志:

currentValue 1
index 0
array [1, 2, 3]
currentValue 2
index 1
array [1, 2, 3]
currentValue 3
index 2
array [1, 2, 3]

请注意,该函数不必内联,这是相同的:

   function mapper(currentValue, index, array) {
        console.log("currentValue", currentValue);
        console.log("index", index);
        console.log("array", array);
   }

   [1, 2, 3].map(mapper);

答案 2 :(得分:2)

.map是一个功能。函数通常接受参数。您所指的部分更详细地描述了这些论点及其目的。让我们看一下函数的签名

arr.map(callback[, thisArg])

这告诉你该函数有两个参数,其中第二个参数是可选的(由[...]表示)。

文档选择命名第一个参数“callback”和第二个参数“thisArg”。它本来可以选择不同的名字而不是名字,只是简单地提到“第一”和“第二”的论点。

当然,所选择的名字带有一些含义,但这只是次要的。完全命名它们是为了能够在文档后面轻松引用这些参数。每当您在callback的文档中看到.map(即格式化为代码)时,例如

  

执行this时用作callback的值。

你知道它引用了第一个参数。

类似地,“currentValue”,“index”和“array”是传递给.map(“callback”)的第一个参数的参数的标签,因为该参数也应该是一个函数

currentValue本身并没有任何意义。但是,在.map的上下文中,它引用传递给.map的第一个参数的第一个参数。它的含义在文档中描述:

  

数组中正在处理的当前元素。


这遵循我们编写函数的典型方式。声明函数时,通常会给出参数名称。例如:

function first(arr) {
    return arr[0];
}

这里我给第一个参数命名为arr,所以我以后可以更容易地参考它。文档中也是如此:参数/参数有一个名称,以便以后可以轻松引用。

答案 3 :(得分:1)

map方法有两个参数。回调和范围参数。

回调是您设置进行处理的功能。它有三个参数,可以将当前迭代的状态作为数组上的map循环。

var myArray = [1,2,3,4,5];

function callback ( currentValue, index, array) {
   console.group("callback called");
   console.log("currentValue:", currentValue);  //Current value of the index aka `array[index]`
   console.log("index:", index);  //current index of the loop (think of it as a for loop (var i=0; i<array.lenght; i++) It would be i.
   console.log("array:", array);  //The array you are looping over..aka a reference to myArray 
   console.groupEnd("callback called");
   return currentValue * 2;
}

var result = myArray.map(callback);
console.log(result);

方法声明[, thisArg]中的[]表明该参数/参数是可选的。