Javascript - getOwnPropertyDescriptor &DOM原型元素的definePropert

Javascript - getOwnPropertyDescriptor & defineProperty on DOM prototype elements

本文关键字:元素 definePropert 原型 DOM getOwnPropertyDescriptor Javascript      更新时间:2023-09-26

我试图捕获任何IMG标签的"src"属性上的读/写操作。为此,我试图使用getOwnPropertyDescriptor &在htmlageelement对象上的defineProperty函数(因为我不想为每个img定义它们)关于getOwnPropertyDescriptor:

var proto = Object.getPrototypeOf(HTMLImageElement);
var own = Object.getOwnPropertyDescriptor(proto, "src");
// own is undefined in IE10/FF8/Chrome15

关于上面的原型元素上的defineProperty,我看到getter/setter函数只在Chrome中运行,而不是当我期望它们的时候,并且getter函数中的"this"是DOM窗口的原型。我的测试代码可以在http://jsfiddle.net/yoav/tUekJ/

找到

getOwnPropertyDescriptor应该在这种情况下工作吗?我应该期望getter/setter函数被触发时,JS访问"src"属性?

谢谢!

src是一个实例属性,而不是原型属性。使用类似msdn示例的内容:

    var own = Object.getOwnPropertyDescriptor(HTMLImageElement.prototype, "setAttribute");

引用

  • ES5中新对象方法的实现