方法一:constructor
1 | console.log(arr.constructor === Array) |
方法二:instanceof
方法三:Array.isArray()
1 | var arr = [] |
方法四:Object.prototype.toString().call()
第1种和第2方法在跨域时会失效,当你在多个frame中来回穿梭的时候,由于每个iframe都有一套自己的执行环境,跨frame实例化的对象彼此是不共享原型链的,因此导致上述检测代码失效。
1 | console.log(arr.constructor === Array) |
1 | var arr = [] |
第1种和第2方法在跨域时会失效,当你在多个frame中来回穿梭的时候,由于每个iframe都有一套自己的执行环境,跨frame实例化的对象彼此是不共享原型链的,因此导致上述检测代码失效。