在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ js 中Array.prototype.slice.call(arrary,ar

js 中Array.prototype.slice.call(arrary,args)和數(shù)組直接調(diào)用slice方法有什么區(qū)別

javascript中操作數(shù)組比如Array.prototype.slice.call(arrary,args)和數(shù)組直接調(diào)用slice方法有什么區(qū)別

回答
編輯回答
奧特蛋

args屬于類數(shù)組對象啊,和document.getElementsByClassName獲取到的內(nèi)容類似,僅擁有數(shù)組結(jié)構(gòu)但是不具備數(shù)組的原型方法,所以會需要用Array.prototype.slice.call的形式去執(zhí)行綁定數(shù)據(jù)的slice方法。

2017年7月22日 16:44
編輯回答
安于心

數(shù)組直接調(diào)用slice方法是 返回一個從開始到結(jié)束(不包括結(jié)束)選擇的數(shù)組的一部分淺拷貝到一個新數(shù)組對象。
可以使用Array.prototype.slice.call(arguments)是將類數(shù)組(Array-like)對象/集合轉(zhuǎn)換成一個新數(shù)組。
或者簡化寫法為[].slice.call(arguments)
另外,ES6 中新增的 API Array.from 同樣也可以將類數(shù)組對象轉(zhuǎn)為真正的數(shù)組
實際應(yīng)用中,類數(shù)組對象常常是 DOM 操作返回的 NodeList 集合以及函數(shù)的 arguments就是一個類數(shù)組對象
舉例:

let arrayLike = {
  '0': 'a',
  '1': 'b',
  '2': 'c',
  length: 3
}
// es5的寫法 
var arr =  Array.prototype.slice.call(arrayLike) // ["a", "b", "c"]
var arr = [].slice.call(arrayLike) // ["a", "b", "c"]
// es6的寫法
let arr2 = Array.from(arrayLike) // ["a", "b", "c"]

參考鏈接 slice

2017年2月18日 08:39