前言
回想起之前的一些面试,几乎每次都会问到一个js中关于call、apply、bind的问题,比如…
怎么利用call、apply来求一个数组中最大或者最小值
如何利用call、apply来做继承
apply...(animal)();
啦啦啦,有木有很神奇,控制台输出了三次cat
我们拿别人的showName方法,并动态改变其上下文帮自己输出了信息,说到底就是实现了复用
区别
上面看起来三个函数的作用差不多,...所以其实他们干的事从本质上讲都是一样的动态的改变this上下文,但是多少还是有一些差别的..
call、apply与bind的差别
call和apply改变了函数的this上下文后便执行该函数,而bind...67,5,7,6,-8,687);Math.min.apply(Math, arr);Math.min.call(Math, 34,5,3,6,54,6,-67,5,7,6,-8,687);
将伪数组转化为数组
js...Array.prototype.slice.call(arrayLike);
上面arr便是一个包含arrayLike元素的真正的数组啦( 注意数据结构必须是以数字为下标而且一定要有length属性 )
数组追加
在js