Javascript类在构造函数中或类外部定义属性
我正在创建一个定义以下类的项目:Javascript类在构造函数中或类外部定义属性,javascript,node.js,class,ecmascript-6,Javascript,Node.js,Class,Ecmascript 6,我正在创建一个定义以下类的项目: class BankAccount { constructor(balance=0){ this.balance = balance; } withdraw(amount){ if(this.balance - amount >= BankAccount.overdraftlimit){ this.balance -= amount; } } } BankAccount.overdraftlimit = -5
class BankAccount {
constructor(balance=0){
this.balance = balance;
}
withdraw(amount){
if(this.balance - amount >= BankAccount.overdraftlimit){
this.balance -= amount;
}
}
}
BankAccount.overdraftlimit = -500;
我这里的问题是关于财产的定义透支限额
这是定义我们称之为全局属性的最佳方法吗?
或者最好在构造函数中定义它
this.overdraftlimit = -500;
谢谢 如果透支限额
在所有银行账户
中共享,则遵循静态适当性
BankAccount.overdraftlimit = -500;
如果每个银行账户
都有自己的透支限额
,那么它不应该是类的一部分,而应该是单个实例的一部分
constructor(balance = 0){
this.balance = balance;
this.overdraftlimit = -500;
}
通过这种方式,您还可以更改透支限额
,而不影响其他银行账户
,如果透支限额
在所有银行账户
中共享,则遵循静态原则
BankAccount.overdraftlimit = -500;
如果每个银行账户
都有自己的透支限额
,那么它不应该是类的一部分,而应该是单个实例的一部分
constructor(balance = 0){
this.balance = balance;
this.overdraftlimit = -500;
}
通过这种方式,您还可以更改透支限额
,而不会影响取决于您所在域的其他银行帐户
。不同的银行账户可以有不同的透支限额吗?一个银行账户应该能够改变它吗?谢谢你的回复。不,另一个银行帐户不能对其进行变异,并且会有不同的银行帐户具有不同的透支限制。如果透支限制不是任何特定实例的一部分,那么将其定义为类本身的一部分是有意义的。否则,将其作为实例状态的一部分。我个人会在构造函数中使用默认值设置此属性,并为itok创建setter和getter,因此我理解,如果它被定义为类的一部分,则与实例无关,任何实例都不能对其进行修改。这取决于您的域。不同的银行账户可以有不同的透支限额吗?一个银行账户应该能够改变它吗?谢谢你的回复。不,另一个银行帐户不能对其进行变异,并且会有不同的银行帐户具有不同的透支限制。如果透支限制不是任何特定实例的一部分,那么将其定义为类本身的一部分是有意义的。否则,将其作为实例状态的一部分。我个人会在构造函数中使用默认值设置此属性,并为itok创建setter和getter,因此我理解,如果它被定义为类的一部分,则与实例无关,任何实例都不能对其进行修改。ohhh,好的,我得到了它。将其声明为静态属性将使此属性可由所有实例共享。如果其中一个更改它,它将影响其他实例。正如您所说的,是类的一部分,而不是实例的一部分。这就是你的意思,对吗?很好的解释是的,我明白了。将其声明为静态属性将使此属性可由所有实例共享。如果其中一个更改它,它将影响其他实例。正如您所说的,是类的一部分,而不是实例的一部分。这就是你的意思,对吗?很好的解释是的,就是这样