我基本上是来自Java背景,所以我写了一个JavaScript代码,其中一个变量充当私有变量,这是我的代码
var myObject = function(){
var teamScore = 0;
return {
playSix: function() {
teamScore += 6
},
playFour: function() {
teamScore = teamScore +4
},
getScore: function(){
return teamScore;
},
getMScore : teamScore
}
}();
myObject.playSix();
alert ("What is the team score :" + myObject.getScore())
alert ("What is the M-score :" + myObject.getMScore)
所需的输出是
球队得分是6分;
什么是M分数:6
但是实际输出是
球队得分是6分;
什么是M分数:0
为什么M分数是0?
最佳答案
这是因为getMScore
初始化为零,并且永远不会更改。
属性getMScore
不是对teamScore
变量的引用,它仅在创建对象时使用teamScore
变量的值进行初始化。更改teamScore
变量后,getMScore
属性不受影响。