关于bind、call以及apply
call以及apply的用法 1、调用函数 function foo(n){ console.log(n); } foo(1); foo.call(null,2); foo.apply(null,[3]); 2、改变所调用的函数的内部的this值的指向 var a=1; function foo(b){ console.log(this.a+b); } foo(2); foo.call({a:3},4); foo.apply({a:5},[6]); 3、借用其他对象的方法 var arr=[12,34,6,32,12,43]; var ret=Math.max.apply(null,arr); console.log(ret); 4、把类数组转换成数组 var obj={0:'1',1:'2',length:2}; var ret=[].slice.call(obj); console.log(ret); 关于slice的用法 var arr=[12,23,45,87]; var arr1=arr.slice(0,2); console.log(arr1); var arr2=[23,56,76]; var ret=arr.slice.call(arr2,0,2); console.log(ret); var rets=[].slice.call(arr2,0,2);