javascript - 只读属性

标签 javascript variables object

是否可以将 javascript 对象属性设置为只读?我想设置一个不可修改的属性...

最佳答案

这是可能的,但是很昂贵。你可以通过拥有一个真正私有(private)的成员变量然后提供一个访问函数来做到这一点:

var NiftyThing = function() {
    var trulyPrivateVariable;

    trulyPrivateVariable = 5; // For instance
    this.accessorFunction = function() {
        return trulyPrivateVariable;
    }
};

之所以可行,是因为访问器函数是对 var 的闭包。代价是每个实例都有自己的访问器函数副本。

编辑:用法:

var n = new NiftyThing();
alert(n.trulyPrivateVariable);
// Alerts "undefined"
alert(n.accessorFunction());
// Alerts "5"

参见 Private Member Variables in JavaScript了解更多。

关于javascript - 只读属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1321690/

相关文章:

javascript - AngularJS 对象数组中属性的总和

javascript - 如何在js中使用FileReader API读取多个文件输入

c# - C#中object和var的区别

JavaScript:如何访问另一个对象内的对象的原型(prototype)?

c++ - 这里创建了多少个对象实例?

Mysql - 重用计算值

javascript - 将 prop 值从父级传递给子级时 v-model 值更新问题

javascript - 在 Angular 应用程序中使用 Webworkers(服务 worker 在 angular-cli 中缓存数据访问)

javascript - 如何在 SAHI 中使用 javascript ajax api

variables - 在 Fortran 中命名派生类型的良好实践