例如,说我有他的职能:
var person = (function(){
var age = "will"
function shoutAge(){
alert(age)
}
return {
shoutAge
}
})()
创建完成后,我可以执行以下操作:
person.age = 45;
当然,这不是人的年龄范围内的年龄,但这可能会引起困惑。
我将其更改为使用
const
:const person = (function(){
var age = "will"
function shoutAge(){
alert(age)
}
return {
shoutAge
}
})()
但是我仍然可以添加自定义属性。
我误解了const的含义,您不能重新分配变量,但是可以为其添加属性。
但是,有没有办法使它不可编辑,或者由于某些原因不应该执行某些操作?
最佳答案
一种选择是在返回对象which之前在其上使用Object.freeze
:
'use strict';
var person = (function() {
var age = "will"
function shoutAge() {
console.log(age)
}
return Object.freeze({
shoutAge
})
})();
person.shoutAge();
person.foo = 'foo';