call的性能比apply好,尤其是在传递给函数的参数超过三个的时候
-
call和apply都是函数原型上的方法,用于改变this的指向。 只不过call传递参数,是一个一个的传递,而apply是以数组的形式给函数传递参数 fn.call(obj,params1,params2,,,,); fn.apply(obj,[params1,params2,params3,,,,]); 在基于ES6的展开运算符也可以实现把数组中的每一项依次传递给函数,也就是说,使用展开运算符call可以实现和apply相同的效果 fn.call(obj,...arr); -
bind并没有把函数立即执行,只是预先处理函数内部this的指向 -
console.time(); 一般用于性能测试
console.time('A'); for (let index = 0; index < 1000; index++) {} console.timeEnd('A');