我正在使用特殊的getter/setter来拦截对对象属性所做的更改,它目前对任何普通用户定义的属性都很有效。但是,如果我能够使用相同的想法来构建HTMLInputElement.value
或Array.length
之类的属性,我会很高兴,但是不幸的是,这些属性被定义为不可配置,因此当我试图使用getter/setter重新定义它们时会出错。
我只是想知道是否有任何(可靠的)黑客,我可以做,以迫使这些重新定义,而不破坏他们的内部操作。
如果不是,我可能会被迫为所有这些定义替代属性,这些属性只需映射到本地属性并使用它们,但这并不理想。
发布于 2012-02-07 09:59:42
稍后使用JavaScript 1.8.1:定义getter和setter
发布于 2012-02-07 08:50:13
这在任何方面都不是很好的实践,但如果您真的需要,这些函数是在原型级别上定义的,因此:
Array.prototype.length = (function(){})();
好的,我认为即使这种方法也不适用于某些函数,它们必须受到保护
https://stackoverflow.com/questions/9180100
复制