【发布时间】:2013-05-11 13:33:37
【问题描述】:
这是为对象分配属性的有效方法吗?我有一个 if/else 语句,我希望它确定 p 和 i 的属性是什么。
function game(){
var self = this;
this.determineDifficulty = function(){
var difSet = document.getElementById("dif");
var chosen = difSet.options[difSet.selectedIndex].value;
if(chosen === "Easy"){
var d = 0;
self.p = 1;
self.i = 1000;
}else if(chosen === "Medium"){
var d = 1;
self.p = 0.1;
self.i = 100;
}else{
var d = 2;
self.p = 0.01;
self.i = 10;
}
return d;
}
}
var myGame = new game();
如果我提醒myGame.p,它会给我正确的值。但这是好的做法吗?据我了解,如果我想要一个可以在多种方法中使用的变量 - 我应该将其分配为对象的属性。另一种选择是返回 this 是一个常规变量。如果这正确吗?
【问题讨论】:
-
这取决于 - 您分配给
this(或self,在您的示例中)的任何内容都可以公开访问,就像您在myGame.p中显示的一样。您可以在game函数内声明“私有”变量 - 这意味着函数内的任何内容都可以访问/更改它们,但您不能离开game。
标签: javascript oop properties this self