gpt4 book ai didi

javascript - 是否可以创建一个不可编辑的 JavaScript 对象?

转载 作者:行者123 更新时间:2023-11-29 16:34:52 28 4
gpt4 key购买 nike

例如,假设我有他的功能:

var person = (function(){
var age = "will"

function shoutAge(){
alert(age)
}

return {
shoutAge
}
})()

创建后我可以做:

person.age = 45;

当然,这不是 person 范围内的年龄,但这可能会引起混淆。

我将其更改为使用 const :

const person = (function(){
var age = "will"

function shoutAge(){
alert(age)
}

return {
shoutAge
}
})()

但我仍然可以添加自定义属性。

我误解了 const 的用途,您不能重新分配变量,但可以向其添加属性。

但是有没有办法让它不可编辑或者是出于某种原因不应该做的事情?

最佳答案

一种选择是在返回对象之前对对象使用Object.freezewhich :

prevents new properties from being added to it; prevents existing properties from being removed; and prevents existing properties, or their enumerability, configurability, or writability, from being changed, it also prevents the prototype from being changed.

'use strict';
var person = (function() {
var age = "will"

function shoutAge() {
console.log(age)
}

return Object.freeze({
shoutAge
})
})();
person.shoutAge();
person.foo = 'foo';

关于javascript - 是否可以创建一个不可编辑的 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52400217/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com