我希望有人能够帮助澄清hasOwnProperty()方法与事件对象的关系。
我正在尝试克隆鼠标事件(最终此对象将被传递到iframe)。 我已经构建了一个“克隆”函数,但无论何时我尝试克隆窗口事件(如滚动、单击等),所有“hasOwnProperty()”实例都返回false。 例如,我遍历对象 - 使用hasOwnProperty()检查 - 每个属性都返回false。 这适用于标准对象-但不适用于事件对象。
这是因为事件对象中的所有属性都是继承的吗? 还是代码有问题?
任何启示都将不胜感激 :)
代码片段:
我正在尝试克隆鼠标事件(最终此对象将被传递到iframe)。 我已经构建了一个“克隆”函数,但无论何时我尝试克隆窗口事件(如滚动、单击等),所有“hasOwnProperty()”实例都返回false。 例如,我遍历对象 - 使用hasOwnProperty()检查 - 每个属性都返回false。 这适用于标准对象-但不适用于事件对象。
这是因为事件对象中的所有属性都是继承的吗? 还是代码有问题?
任何启示都将不胜感激 :)
代码片段:
function cloneObject (o_node) {
var newObject = {};
for (var child_node in o_node) {
if (o_node.hasOwnProperty(child_node)) {
//no object properties are returning true at this point.
newObject[child_node] = o_node[child_node];
}else{
console.log("!hasOwnProperty()");
}
}
return newNode;
}
function onclick(e){
var cloned_object_e = cloneObject(e); //returns an empty object;
}
window.addEventListener('click', onclick);