ES6设置属性

时间:2016-07-03 11:30:03

标签: javascript node.js class ecmascript-6

我已经研究过了,似乎ES6没有能力设置类的属性,并返回该类?

class MyClass {
    constructor() {
        this.x = 0;
        this.y = 0;
    }
    update(value) {
        // logic
        this.y = value;
        return value;
    }
}

var x = new MyClass();
console.log(x.update(1));

使用上述内容,即使将x设置为y1也会将y保持为0。 console.log1,但y永远不会更新。致电x.y将导致0

我也试图返回课程,但这也不起作用。

class MyClass {
    constructor() {
        this.x = 0;
        this.y = 0;
    }
    update(value) {
        // logic
        this.y = value;
        return this;
    }
}

var x = new MyClass();
x = x.update(1);

之后使用console.log(x)会再次导致y0,而不是1

我知道setget,但后来我无法在update()内执行任何逻辑或返回任何内容。

这是有意的,还是我完全做错了?

我想说明我正在使用NodeJS

我正在做的事情如下:

class.js ->
    module.exports = /*class MyClass{}*/ (the above MyClass code)

app.js ->
    let MyClass = require('class');

    let x = new MyClass();
    x.update(1);

    console.log(x) (this returns the same value as x before calling update())

2 个答案:

答案 0 :(得分:0)

  

致电x.y会产生0

不,不。这表明您的// logic存在缺陷。如果没有额外的逻辑,x.y属性最终会以1结束。

答案 1 :(得分:0)

有效!

 var x =new MyClass();
    console.log(x.update(1)); //1
    console.log(x.y); //1