我有一个功能:
function Check(o)
{
alert(/* o is a DOM element ? "true" : "false" */);
}
Run Code Online (Sandbox Code Playgroud)
如何检查参数o是否是DOM对象?
因此,以下代码警告错误两次:
window.onload = function(){
alert(window.myframe.myarray instanceof Array);
alert(window.myframe.myarray.constructor === Array);
}
Run Code Online (Sandbox Code Playgroud)
名为"myframe"的页面中有一个iframe,其中包含一个名为"myarray"的数组.如果将数组移动到主页面(而不是iframe),则代码会按预期警告两次.有人知道为什么吗?
为了在窗口之间传递数据,我通过该window.open方法打开新窗口,并将新打开的窗口的属性设置为对象.这使我不仅可以传递数据,还可以共享变量的实例,这意味着如果我在一个窗口上修改对象或其任何派生属性,它会在所有窗口上修改它.
然而,问题是使用instanceof运算符非常有趣.
当我做
typeof m
m instanceof Object
Run Code Online (Sandbox Code Playgroud)
第一行返回,"object"而第二行返回false.
我特别需要instanceof运算符来检查数组和对象.
这是一个示例的小提琴(警告:尝试在页面加载时打开一个窗口,因此弹出窗口阻止程序可能会阻止它).http://jsfiddle.net/Chakra/mxf2P/1/