我使用以下方法来覆盖HTMLElement属性:
Object.defineProperty(HTMLElement.prototype, "style", {
get: function () {
var newValue = "some style...";
return newValue;
}
});
在上面的例子中,我想改变HTMLElements的style属性。但是,在某些情况下,我想返回不覆盖的属性(或本机属性)。到目前为止,我已经尝试了以下内容,但它不起作用:
var old = HTMLElement.prototype;
Object.defineProperty(HTMLElement.prototype, "style", {
get: function () {
if (someCondition) {
var newValue = "some style...";
return newValue;
} else {
return old.style;
}
}
});
答案 0 :(得分:-1)
通过分配
var old = HTMLElement.prototype;
您只是制作HTMLElement原型的指针,然后重写。尝试从旧的原型创建一个新的原型。
var old = Object.create(HTMLElement.prototype);
结帐: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create