Object.freeze(); 方法凍結一個對象。


Object.freeze() 方法可以凍結一個對象。一個被凍結的對象再也不能被修改;

凍結了一個對象則不能向這個對象添加新的屬性,不能刪除已有屬性,不能修改該對象已有屬性的可枚舉性、可配置性、可寫性,以及不能修改已有屬性的值。

此外,凍結一個對象后該對象的原型也不能被修改。freeze() 返回和傳入的參數相同的對象。

 

 1 const obj = {
 2   property: 42
 3 };
 4 
 5 const obj2 = Object.freeze(obj);
 6 
 7 obj.property = 33;
 8 // Throws an error in strict mode 會拋出異常
 9 
10 console.log(obj.property);
11 // expected output: 42   值沒有被改變

 但是被freeze的對象,可以被替換

new Vue({
    data: {
        // vue不會對list里的object做getter、setter綁定
        list: Object.freeze([
            { value: 1 },
            { value: 2 }
        ])
    },
    created () {
        // 界面不會有響應
        this.list[0].value = 100;

        // 下面兩種做法,界面都會響應
        this.list = [
            { value: 100 },
            { value: 200 }
        ];
        this.list = Object.freeze([
            { value: 100 },
            { value: 200 }
        ]);
    }
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM