apply()方法的另外一種使用,就是能夠代替一次for循環
在封裝 document.getElementsByTagName的時候,須要把僞數組轉爲一個真的數組,其是也不是真的數組 typeof 出來是object,
看代碼:javascript
/** * 根據標籤名稱獲取元素 * @param tagName 標籤名稱 * @returns DOM 僞數組 */ function getTags(tagName){ var result=[]; result[0] = "myDiv"; // 爲了更好的方便看打印結果,沒有實際的意義 result.push(document.getElementsByTagName(tagName)); console.log(result); return result; } var divs = getTags("div");
顯然不是咱們想要的結果java
/** * 根據標籤名稱獲取元素 * @param tagName 標籤名稱 * @returns DOM 僞數組 */ function getTags(tagName){ var result=[]; var divs = document.getElementsByTagName(tagName); for(var i=0,len = divs.length;i<len;i++){ console.log(divs[i]); // 打印出每個div result.push(divs[i]); } console.log(typeof result); // object console.log(result); return result; } var divs = getTags("div");
/** * 根據標籤名稱獲取元素 * @param tagName 標籤名稱 * @returns DOM 僞數組 */ function getTags(tagName){ var result=[]; result.push.apply(result,document.getElementsByTagName(tagName)); console.log(typeof result); // object console.log(result); return result; } var divs = getTags("div");
var arr1 = [1,2,3]; var arr2 = [4,5,6]; // 合併兩個數組 // 方法1- for循環 // for(var i =0,len = arr2.length;i<len;i++){ // arr1.push(arr2[i]); // } // console.log(arr1); // [1, 2, 3, 4, 5, 6]; // apply()方法 arr1.push.apply(arr1,arr2); console.log(arr1); // [1, 2, 3, 4, 5, 6];