I am using node v0.11.14-nightly-20140819-pre on Windows with harmony
flag.
I have JavaScript object with two methods defined in its prototype:
function User (args) {
this.service= new Service(args);
}
User.prototype.method2 = function (response) {
console.log(this); // <= UNDEFINED!!!!
};
User.prototype.method1 = function () {
.............
this.service.serviceMethod(args)
.then(this.method2)
.catch(onRejected);
};
function onRejected(val) {
console.log(val);
}
serviceMethod
of Service
object returns a promise.
When I use User
object like below:
let user = new User(args);
user.method1();
this
in method2
of object User
ends up undefined
when called by then
once promise is fulfilled.
I tried using both ES6 and Bluebird promise implementation.
Why this
ends up being undefined
in this case?
Question&Answers:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…