如何使我的min函数正常工作。我得到的banque是不确定的吗?
谢谢。
项目清单
项目清单
项目清单
function Personne(nom){
this.nom = nom;
var banque = 1500;
this.add = function(number){
banque = banque + number
}
this.getCpte = function() {
return banque
}
}
Personne.prototype.min = function(number){
banque = banque - number
}
var me = new Personne('albert')
console.log(me)
me.add(500)
me.min(500) // got banque is undefined
console.log(me.getCpte())
最佳答案
您可以做的是为banque
设置吸气剂,以便可以使用原型。看来您已经使用getCpte
完成了此操作。只需使用该函数即可获取banque
的值,并将其用于原型函数分配中。如果您想修改banque
函数之外的值,则还需要一个Personne
的setter(这将使banque
本质上是公开的。要解决此问题,请尽可能在构造函数中设置min
函数) ):
function Personne(nom){
this.nom = nom;
var banque = 1500;
this.add = function(number){
banque = banque + number
}
this.getCpte = function() { //banque getter
return banque
}
this.setCpte = function(value) { //banque setter
banque = value;
}
}
Personne.prototype.min = function(number){
this.setCpte(this.getCpte() - number) //set to banque - number
}
var me = new Personne('albert')
console.log(me)
me.add(500)
me.min(500)
console.log(me.getCpte())
它添加的是函数
setCpte
,它是banque
的设置器。这样,我们可以使用this.setCpte(value)
,其中value是设置为banque
的值。既然您做了banque - number
,我们就可以使用getter摆脱ReferenceError,并从中减去数字。