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]

  

posted @ 2020-10-09 14:04  莫邪曲  阅读(217)  评论(0)    收藏  举报