ntscshen / ntscshen.github.io

个人博客
0 stars 2 forks source link

JS经典interview(五) - 类型判断 #6

Open ntscshen opened 7 years ago

ntscshen commented 7 years ago

如何精准判断一个对象是数组类( Array.isArray([1, 2, 3]) )

必须通过call或apply来调用,而不能直接调用toString()。大多数的对象都实现了自身的toString方法,这可能会导致Object的toString被提前终止查找。所有需要 call/apply 来强制调用Object的toString() 方法。 返回的格式为 '[object Number]'

toSting

function isArray(obj){
    return Object.prototype.toString.call(obj) === '[object Array]'
}

原型链

functin isArray(obj){
    return obj.__proto__ === Array.prototype;
}