一、安全的类型检查
- 本页面
// 非 iframe
Array === window.parent.Array // true
// so. instanceof 可以实现
var arr = [1, 2, 3]
arr instanceof Array //true
2.嵌套 iframe
// 在 iframe 中
Array === window.parent.Array // false
// so 需要用 call
Object.prototype.toString.call([1, 2, 3]) // [object Array]
Array !== window.parent.Array
原因:它们分别是两个函数,父窗口定义了一个,子窗口又定义了一个,内存地址不一样,内存地址不一样的 Object 等式判断不成立
注意:
参考:http://ecma-international.org/ecma-262/5.1/#sec-15.2.4.2