setValue
函数),但吸气剂不起作用。这是一个简单的示例:const should = require('chai').should();
class One {
setValue(val) {
this._val = val;
}
get val() {
return this._val;
}
}
class Two {
constructor(one) {
this.one = one;
}
setValue(val) {
this.one.setValue.call(this, val);
}
get val() {
this.one.val.call(this);
}
}
let one = new One();
let two = new Two(one);
one.setValue(1);
two.setValue(2);
one.val.should.equal(1);
two.val.should.equal(2);
以上代码在错误的最后一行爆炸:
TypeError: this.one.val.call is not a function
at Two.get val [as val] (C:\all\code\node-tests\invoke_getter.js:23:22)
at Object.<anonymous> (C:\all\code\node-tests\invoke_getter.js:32:5)
我该如何进行类似的工作?
我正在尝试创建一个(类)实例,该实例复制另一个类的行为,但将其自身用作状态上下文(此)。普通函数可以正常工作(例如示例中的setValue函数...
extend
,但我不确定。但是从should
语句判断,您似乎误解了对象引用的工作方式。