array.prototype.sliceJavascript的使用实例
通常,你可以看到array.prototype.slice(参数0);这种方法可以用于函数(){ },它可以是一个函数的参数列表为真正的数组。请看一个例子:复制代码代码如下所示:
var片= array.prototype.slice;
VaR方法= object.prototype.tostring;
(函数(){())
var args =参数;
console.log(args,tostring.call(args)); / / { 1, 2, 3 } { }对象的争论
无功argsarr =片(args,0);
console.log(argsarr,tostring.call(argsarr)); / / { 1, 2, 3 } { }对象数组
}(1,2,3))
我们可以看到函数的参数列表参数经过切片调用后成为数组的第二个。
同样,还可以将选定的DOM元素转换为数组:
复制代码代码如下所示:
Slice.call(document.queryselectorall(div));
跟随它,我们认为,幻灯片方法是否可以转换成数组看看例子:
复制代码代码如下所示:
console.log(slice.call('String')); / / {S
console.log(slice.call(新的字符串('String'))); / / {S
每次,字符串都被直接转换成数组。
但是,布尔值将被转换为一个空数组。
复制代码代码如下所示:
console.log(slice.call(33));
console.log(slice.call(真的));
普通的对象也会被转换成空数组,除非你给它添加一个长度属性:
复制代码代码如下所示:
console.log(slice.call({姓名:'obj ' })); / / { }
console.log(slice.call({ 0:零,1:' })); / / { }
console.log(slice.call({ 0:零',1:一、名称:'obj,长度:2 })); / / {零
它也可以用于克隆阵列:
复制代码代码如下所示:
无功srcarr = {1,2,3};
var newarr = srcarr.slice(0);
console.log(srcarr,newarr); / / {1,2,3} {1,2,3}
console.log(srcarr = = newarr); / /假