有啥区别?
来源:1-1 jQuery是什么
AXLL
2019-07-20 23:52:18
Array.prototype.slice.call(); 和[].slice.call() 有啥区别?
1回答
你好同学,它们两个是一样的。通过如下理解:
calll()方法的作用就是帮助一个对象去调用另一个对象的方法。如果其他类型的变量使用数组中的slice方法,就要借助call()方法去调用。
Array是创建数组的一个全局对象,你可以理解为它是所有数组的一个祖先。所有的对象,都会存在一个prototype,意思是原型。所以Array.prototype.slice.call();就是借助call去调用数组原型上的slice。
[].slice.call() 就是借助call()去调用空数组中的slice。因为每一个数组都会有slice方法。所以即使定义其他的数组,例如var arr1=[1] ,然后使用arr1.slice.call()也是一样的。目的是只要通过call调用了数组中的slice即可。所以不管是调用原型上的,还是任意其他数组中的,实现的效果都是一样的,没有区别。
祝学习愉快,望采纳。
相似问题