因为声明它是可扩展的,所以实际上您可以自己创建这样的freeze-less objects,如下所示:
代码语言:javascript复制const someObject = new Proxy({}, {
preventExtensions: () => {
throw TypeError('Cannot freeze');
}
});
someObject.x = 1;
console.log(typeof someObject);
console.log(someObject);
Object.freeze(someObject);
有关这方面的更多信息,可以在这里阅读:Proxy。
下一个问题可能会出现,为什么它是“使”可扩展的,为此,我们有window Global object的定义,和这个例子:
代码语言:javascript复制var foo = "foobar";
foo === window.foo; // Returns: true考虑到这一点,人们现在可能想知道,如果我们可以freeze它会发生什么