有啥区别?

来源:1-1 jQuery是什么

AXLL

2019-07-20 23:52:18

Array.prototype.slice.call(); 和[].slice.call() 有啥区别? 



写回答

1回答

好帮手慕夭夭

2019-07-21

你好同学,它们两个是一样的。通过如下理解:

  1. calll()方法的作用就是帮助一个对象去调用另一个对象的方法。如果其他类型的变量使用数组中的slice方法,就要借助call()方法去调用。

  2. Array是创建数组的一个全局对象,你可以理解为它是所有数组的一个祖先。所有的对象,都会存在一个prototype,意思是原型。所以Array.prototype.slice.call();就是借助call去调用数组原型上的slice。

  3. [].slice.call() 就是借助call()去调用空数组中的slice。因为每一个数组都会有slice方法。所以即使定义其他的数组,例如var arr1=[1] ,然后使用arr1.slice.call()也是一样的。目的是只要通过call调用了数组中的slice即可。所以不管是调用原型上的,还是任意其他数组中的,实现的效果都是一样的,没有区别。

祝学习愉快,望采纳。

0

0 学习 · 14456 问题

查看课程