如何使我的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,并从中减去数字。

10-08 13:54