call、apply妙用总结

·  阅读 53
call、apply妙用总结

Object.prototype.toString.call(obj) 检测对象类型

Array.prototype.slice.call(arrayLike) 类数组转换数组

Object.prototype.hasOwnProperty.call(myObject,'a') 判断属性是否在对象上

你不知道的javascript上卷 119页

Array.prototype.push.apply(arr1,arr2) 两个数组合并

Math.max.apply(null,array) 得到数组中最大的一项

Math.min.apply(null,array) 得到数组中最小的一项

let a='foot'

Array.prototype.join.call(a,'-') // 'f-o-o-t'

Array.prototype.map.call('a',v=>{ reurn v.toUpperCase()+'.' }).join('') // F.O.O.T

你不知道的javascrip中券 14页

原因:

  • call(),apply()原本就是为了处理函数this指向的产物,而toString(),push(),join(),max()...本身都是函数,只不过this指向不同,call(),apply()只不贵是把他们的this指向改变了而已。

  • toString(),push(),join(),max()...这些函数默认在js内部可以设置成通用的函数,比如join()即能处理数组又能处理字符串。

分类:
前端
标签:
分类:
前端
标签:
收藏成功!
已添加到「」, 点击更改