我已经研究过了,似乎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
设置为y
,1
也会将y保持为0。 console.log
会1
,但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)
会再次导致y
为0
,而不是1
。
我知道set
和get
,但后来我无法在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())
答案 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