call,apply,和bind的使用
1 他们三个其实都改变了函数执行的上下文,但是还是有一点区别的,call和apply都是直接执行函数,但是bind不是,他仅仅返回了一个待执行的函数,相信大家在react里面有使用过这个例子
2 call和apply又有一点不一样,在于他们接受的参数
apply: 接受一个数组
call: 可以接受多个参数一起传入
3 将伪数组转化成数组,例如arguments,dom节点
function convertFunction() {
return Array.prototype.slice.call(arguments);
}
console.log(convertFunction(1,5,2,1,5,2)); // [1,5,2,1,5,2]
4 判断类型的不同
console.log(Object.prototype.toString.call(arr1)); // [object Array] console.log(Object.prototype.toString.call(str1)); // [object String] console.log(Object.prototype.toString.call(obj1)); // [object Object] console.log(Object.prototype.toString.call(null)); // [object Null]

浙公网安备 33010602011771号