[].forEach.call()的含義和用法


var phonenum = document.querySelectorAll(".phonenum");//手機號碼

[].forEach.call(phonenum, function(item, index) {

  item.addEventListener('blur', function(event) {

    phoneCheck(phonenum,this);

  },false);

});

看不太懂於是上網查了一下(以下是轉載,原文鏈接:https://stackoverflow.com/questions/16053357/what-does-foreach-call-do-in-javascript):

[]是一個數組,這個數組根本不用,它被放在頁面上,因為使用數組可以訪問數組原型,例如.forEach。

這比打字更快 Array.prototype.forEach.call(...);

接下來,forEach是將函數作為輸入的函數...

[1,2,3].forEach(function (num) { console.log(num); });

...並且對於每個元素this(其中this是數組式的,因為它有一個length,你可以訪問它的部分this[1]),它將通過三件事情:

1、數組中的元素

2、元素的索引(第三個元素將通過2)

3、對數組的引用

最后,.call是一個函數的原型(它是一個在其他函數上調用的函數)。

.call將采用其第一個參數,並將this其中的任何內容替換為常規函數call,作為第一個參數(undefined或null將window在日常JS中使用,否則將在“strict-mode”中使用)。

其余的參數將被傳遞給原來的函數。

[1, 2, 3].forEach.call(["a", "b", "c"], function (item, i, arr) {

  console.log(i + ": " + item);

});

// 0: "a"

// 1: "b"

// 2: "c"

因此,您正在創建一個調用該forEach函數的快速方式,並且您正在this從空數組更改為所有<a>標記的列表,並且對於每個<a>按順序,您都調用所提供的函數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM