Object.freeze()
方法用于冻结一个对象,阻止向其添加新属性。此方法可防止修改现有属性、属性和值。
语法:
Object.freeze(obj)
参数
Obj:要冻结的对象。
返回值
此方法返回传递给函数的对象。
浏览器支持
chrome | 45.0 |
edge | 12.0 |
firefox | 32.0 |
opera | 没有 |
示例
下面介绍一些例子帮助理解该方法的使用。
示例1
<script>const object1 = {
property1: 22
};
const object2 = Object.freeze(object1);
object2.property1 = 33;
console.log(object2.property1);
</script>
输出:
22
示例2
<script>const obj1 = { property1: 'freeze'};
const obj2 = Object.freeze(obj1);
obj2.property1 = 'new_data';
console.log(obj2.property1);
</script>
输出:
" freeze "
示例3
<script>
var obj = { prop: function() {}, name: 'charry' };
console.log(obj);
obj.name = 'karri';
delete obj.prop;
console.log(obj);
var o = Object.freeze(obj);
obj.name = 'chris';
console.log(obj);
</script>
输出:
[object Object] {
name: "charry",
prop: function() {}
}
[object Object] {
name: "karri"
}
[object Object] {
name: "karri"
}
name: "charry",
prop: function() {}
}
[object Object] {
name: "karri"
}
[object Object] {
name: "karri"
}