js添加封装修改属性值
js add encapsulation to modify property value
我有这个class:
function level(intLevel) {
this.identifier = 'level';
this.intLevel = intLevel;
this.strLocation = 'Unknown';
displayLocation : function(locationName){
this.strLocation = locationName;
};
this.monsterDelay = 300;
this.setGrid(50, 24);
return this;
}
我正在尝试添加 e 方法来更新 strLocation。
我会打电话给:
显示位置('location');
这是正确的吗?
displayLocation
方法是一个函数,只是一个函数 属性。 属性 可以是任何东西:基本类型、对象或函数。所以你应该像配置其他属性一样配置它:
this.displayLocation = function(locationName){
this.strLocation = locationName;
};
另一个改进是,您可能希望将可重用方法移动到函数原型,这样它就不会在每个实例实例化时都重新创建:
function level(intLevel) {
this.identifier = 'level';
this.intLevel = intLevel;
this.strLocation = 'Unknown';
this.monsterDelay = 300;
this.setGrid(50, 24);
}
level.prototype.displayLocation = function(locationName) {
this.strLocation = locationName;
};
几个笔记。您不需要 return this
,因为 return this
是自动隐含的。还建议使用大写字母命名构造函数,在您的情况下 Level
会更好看。
我有这个class:
function level(intLevel) {
this.identifier = 'level';
this.intLevel = intLevel;
this.strLocation = 'Unknown';
displayLocation : function(locationName){
this.strLocation = locationName;
};
this.monsterDelay = 300;
this.setGrid(50, 24);
return this;
}
我正在尝试添加 e 方法来更新 strLocation。
我会打电话给:
显示位置('location');
这是正确的吗?
displayLocation
方法是一个函数,只是一个函数 属性。 属性 可以是任何东西:基本类型、对象或函数。所以你应该像配置其他属性一样配置它:
this.displayLocation = function(locationName){
this.strLocation = locationName;
};
另一个改进是,您可能希望将可重用方法移动到函数原型,这样它就不会在每个实例实例化时都重新创建:
function level(intLevel) {
this.identifier = 'level';
this.intLevel = intLevel;
this.strLocation = 'Unknown';
this.monsterDelay = 300;
this.setGrid(50, 24);
}
level.prototype.displayLocation = function(locationName) {
this.strLocation = locationName;
};
几个笔记。您不需要 return this
,因为 return this
是自动隐含的。还建议使用大写字母命名构造函数,在您的情况下 Level
会更好看。