【发布时间】:2015-03-23 22:44:16
【问题描述】:
我想用这种方式覆盖js函数:
var elements = {
"Element": {
name: Element,
events: ["focus","blur"]
},
"Window": {
name: Window,
events: ["scroll"]
}
}
$.each(elements, function( k, v ) {
$.each(v.events, function( i, val ) {
if (val) {
console.log(v.name.prototype[val]);
v.name.prototype[val] = function () {
return false;
}
}
});
});
更新:已修复,有没有人建议如何让它变得更好?
【问题讨论】:
-
元素数组(元素、窗口)中的东西不是类的实例。它们只是对象。这意味着他们没有原型,就像
a = {};有原型一样。 -
那么,如果我将:
name: "Element"更改为name: Element,那么一切都会好起来的? -
如果我们不知道预期的用例,我们无法帮助它变得更好。你想做什么?这似乎有点不正统。
-
我在页面上有很多 iframe,显示页面预览,我通过覆盖阻止了 iframe 内的某些事件。
标签: javascript jquery arrays json javascript-objects