我试图在对Element.className的每次调用中调用getter。 我已经得出结论了:
Object.defineProperty(window.Element.prototype, "className", {
get(value){
console.log(value);
debugger;
},
set(value){
console.log(value);
debugger;
}
});
但是由于某种原因它不起作用。 当我调用somenode.className时,我没有调用getter。 有什么想法吗?
答案 0 :(得分:1)
className
是实例的值,因此不会在原型中查找,而是在对象本身中查找:
lookup --> Instance --> Prototype
innerHTML querySelector
className querySelectorAll
id
... ...
您将必须在使用的每个实例上定义getter / setter。