将JavaScript getter/setter添加到本机不可配置的属性中

Add a JavaScript getter/setter to a native unconfigurable property

本文关键字:配置 属性 本机 getter JavaScript setter 添加      更新时间:2023-09-26

我正在使用特殊的getter/setter来拦截对对象属性所做的更改,目前它非常适合任何普通的用户定义属性。然而,如果我能对HTMLInputElement.valueArray.length等内置属性采用同样的想法,我会非常喜欢,但不幸的是,这些属性被定义为不可确定的,因此我在尝试使用getter/setter重新定义它们时出错。

我只是想知道是否有任何一种(可靠的)破解方法可以在不破坏其内部操作的情况下强制重新定义它们。

如果没有,我可能会被迫为所有这些定义替代属性,这些属性只是映射到本地属性并使用它们,但这并不理想。

稍后使用JavaScript 1.8.1:定义getter和setter

这在任何方面都不是一个好的实践,但如果你真的需要,这些功能是在原型级别定义的,所以:

Array.prototype.length = (function(){})();

好吧,我认为即使这种方法对某些函数也不起作用,它们必须受到保护