Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript类在构造函数中或类外部定义属性_Javascript_Node.js_Class_Ecmascript 6 - Fatal编程技术网

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,好的,我得到了它。将其声明为静态属性将使此属性可由所有实例共享。如果其中一个更改它,它将影响其他实例。正如您所说的,是类的一部分,而不是实例的一部分。这就是你的意思,对吗?很好的解释是的,我明白了。将其声明为静态属性将使此属性可由所有实例共享。如果其中一个更改它,它将影响其他实例。正如您所说的,是类的一部分,而不是实例的一部分。这就是你的意思,对吗?很好的解释是的,就是这样