执行instanceof的时候发生了什么!
console.log('**********1')
console.log([] instanceof Object)
let a = []
console.log(a instanceof Array)
Array = {
[Symbol.hasInstance](obj) {
return false
}
}
console.log('**********')
console.log(a instanceof Array)
其实是调用了 [Symbol.hasInstance]方法
局限性
console.log([] instanceof Object)
其实可以看出来,instanceof 判断是不严谨的。
{}.toString.call(data) === '[object Array]'
推荐使用上述方法,更加严谨!