ES6访问类外的变量

时间:2018-05-06 15:45:13

标签: javascript ecmascript-6

如果我创建一个名为Circle的类:

class Circle{
  constructor(){
    this.cost = this.calculateCost()
  }
  showCosts(){
    console.log(l.findHeight(100));
  }
  calculateCost(){
    console.log(l.findHeight(100));
  }
}

并且有两个尝试访问名为l的变量的方法,calculateCost方法不起作用(它表示找不到未定义的高度),因为它是从构造函数访问的。但是当我打电话时

l.showCosts()

在课堂之外,它被称为罚款。为什么是这样?我该如何解决?

let l = new Line();

class Line{
  findHeight(x){
    return x;
  }
}

1 个答案:

答案 0 :(得分:0)

这是因为PAY_MODE_ID变量未在其使用的范围内定义(定义{{​​1}}类的文件)。即使它被定义了,它也可能无法正常工作 - 可能有多个CASHIER_ID个实例,它们引用当前的l变量。

使用enter image description here模式解决了此问题。

可以重构该类以使用特定的Circle

Circle