我使用特殊的getter/setter來攔截對對象屬性所做的更改,它對於任何普通用戶定義的屬性都非常適用。但是,如果我可以將相同的想法應用於內置屬性(如HTMLInputElement.value
或Array.length
),但我將愛,但這些不幸被定義爲不可配置,因此嘗試使用getter/setter重新定義它們時出現錯誤。將JavaScript getter/setter添加到本機的不可配置屬性
我只是想知道是否有任何形式的(可靠)黑客,我可以做到這一點,強制這些重新定義,而不會破壞他們的內部操作。
如果不是這樣,我可能會被迫爲所有這些簡單地映射到本地屬性並使用它們來定義替代屬性,但這並不理想。
正好呀,他們定義爲不可配置的,這意味着你不能改變自己的定義。只是好奇,是否有辦法繞過它。 – devios1 2012-02-08 15:12:55
[] .length是* not *函數。 – Michael 2014-12-31 16:01:14
是的,但如果它不是隻讀的,我們可以將它重寫爲一個 – 2015-01-12 14:03:57