关于ES6方法中“ this”的使用

时间:2018-11-01 18:09:44

标签: javascript es6-class

我是JavaScript新手。我仍然不确定“ this”的用法。例如,在下面的代码中,我们使用

的原因
const density = this.numTrees/this.area;

代替

const density = numTrees/area;

是因为是否不使用它,当我们调用此方法时,numTrees区域将意味着不存在的全局变量? 当我们使用构造函数创建新的park对象时,area和numTrees是输入参数,因此我们可以使用它来将其设置为新的park对象,但是当我们使用treeDensity方法时,则没有输入,并且如果我们要使用area / numTrees我们必须从这个新创建的对象中获得这两个,所以我们必须使用此权限吗?非常感谢!

class Element {
    constructor (name, buildYear) {
        this.name = name;
        this.buildYear = buildYear;
    }
}

class Park extends Element {
    constructor(name, buildYear, area, numTrees) {
        super(name, buildYear);
        this.area = area;//km2
        this.numTrees = numTrees;
    }

    treeDensity () {
        const density = this.numTrees / this.area;
        console.log(`${this.name} has a tree density of ${density} trees per square km.`);
    }
}

0 个答案:

没有答案