创建一个对象,有什么办法可以设置其中的属性为不可修改?

例如

var a = new cc.Node.extend({
   item1 : 1,
   ctor : function(){
      this._super();
      this.item1 = 25; //  有没有什么办法,可以使此处修改属性item1的值不生效,即item1为禁止修改状态
      return true;
   }
});

问题:如何创建一个值不可修改的,常量属性

自己设置这个值的setter & getter 不写入就可以了。

类似于js那种设置不可修改值属性?

var MyClass = cc.Node.extend({});

cc.defineGetterSetter(MyClass.prototype, "actorId", function () {

    return this._actorId;
}, function (val) {

   // this._actorId = val;  //不写入
});
1赞

非常感谢:grin:

var a = new cc.Node.extend({
item1 : 1,//注意:这里不要设置属性,这里设置的属性是写在prototype原型链上的,每个类的实例都会受到影响,你在ctor里初始化设置就可以了。
ctor : function(){
this._super();
this.item1 = 25; // 有没有什么办法,可以使此处修改属性item1的值不生效,即item1为禁止修改状态
return true;
}
});

所有类的属性,建议都在ctor里初始化

恩恩,谢谢指教