借调格式
// 例如数组方法的借调
Array.prototype.fn.call(target, params)
// 或者直接写 []
[].fn.call(target, params)
- fn 需要调用数组的某个方法
- target 需要借调方法的值
- params
fn方法需要的参数
字符串借调数组方法
- 借调
map方法
let a = [].map.call('hello world', v => v)
// => ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
- 借调
slice方法
let a = [].slice.call('hello world')
// => ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d"]
实际使用
-
类数组转数组借调
slice方法
let div = document.querySelectorAll('div')
[].slice.call(div)
-
判断数据类型的最佳方法,借调对象的
toString()方法
({}).toString.call('')
// => "[object String]"
({}).toString.call(2)
// => "[object Number]"
({}).toString.call([])
// => "[object Array]"
({}).toString.call(null)
// => "[object Null]"
({}).toString.call(undefined)
// => "[object Undefined]"