为了在窗口之间传递数据,我通过window.open
方法打开新窗口,并将新打开的窗口的属性设置为对象。这使我不仅可以传递数据,还可以共享变量的实例,这意味着如果我在一个窗口上修改对象或其任何派生属性,它会在所有窗口上修改它。
然而,问题是使用instanceof运算符非常有趣。
当我这样做时
typeof m
m instanceof Object
第一行返回"object"
,第二行返回false
。
我特别需要instanceof运算符来检查数组和对象。
这是一个示例的小提示(警告:尝试在页面加载时打开一个窗口,因此弹出窗口阻止程序可能会阻止它)。 http://jsfiddle.net/Chakra/mxf2P/1/
答案 0 :(得分:5)
由于您的窗口Object
和源窗口的Object
不是同一个东西,因此一个实例不会是另一个的实例。您可以使用Object.prototype.toString
来区分对象和数组:
if(Object.prototype.toString.call(m) === '[object Array]') {
// It's an array
} else {
// It's not
}
如果可以,您还可以使用Array.isArray
。
Here's a demo.(顺便说一下,它使用<iframe>
代替弹出窗口。)