我想知道是否有一种已知的方法可以卡住 JavaScript 中对象的方法。例如
var obj = {};
obj.method = function(){};
Object.freeze(obj.method);
然后obj.method = function(){//New function};
不会做任何事情。
也许这不起作用,因为严格来说,它是一个函数,但只是想知道是否有人有任何解决方案可以实现我想要的功能。
此外,我知道 deepFreeze 概念,但我试图避免使用它并添加一个 where 子句来仅卡住该对象,因为我的对象实际上非常大,所以我不想循环它.
谢谢。
最佳答案
Then
obj.method = function(){//New function};
wouldn't do anything.
是的,使用 Object.defineProperty 非常简单。
Object.defineProperty(obj, 'method', {
value: function() {/* ... */},
enumerable: true, // will show in Object.keys and for..in loop
configurable: false, // can't be deleted
writable: false // can't be redefined
});
关于javascript - object.freeze 仅适用于对象方法。 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367776/