我在NodeJS 4中有一个ES6类。 在构造函数中,我想修改一个对象的原型,以便它现在使用这个类实例来执行一个操作。
但是,当然,在原型范围中,this
并未引用我正在创建的类的实例。
class Generic {
constructor() {
this.myClass = util._extend({}, aClass); //shallow copy
this.myClass.prototype.run = function(fn) {
var str = this.toString;
//in the next line, _this_ should refer to the Generic instance.
this.run(str, fn);
};
}
do() {
return this.myClass;
}
run(str, fn) {
...
}
如何引用在myClass原型范围上创建的Generic类实例?
答案 0 :(得分:3)
一些选项:
bind
:
this.myClass.prototype.run = (function(fn) {
// `this` is the Generic instance.
}).bind(this);
that
:
var that = this;
this.myClass.prototype.run = function(fn) {
// `that` is the Generic instance.
};
箭头功能:
this.myClass.prototype.run = fn => {
// `this` is the Generic instance.
};