正确写法:
function Utils() {
Utils.prototype.getValue = (info) => {
return !!info && info.value;
}
}
let instance = new Utils();
instance.getVolume = function(directive){ //不是箭头函数,函数内部this指向instance对象
let value = this.getValue(directive);
console.log('the value is: ' + value);
};
instance.getVolume({value: 10});
错误写法:
function Utils() {
Utils.prototype.getValue = (info) => {
return !!info && info.value;
}
}
let instance = new Utils();
instance.getVolume = (directive) => { //箭头函数,函数内部this指向Window对象
let value = this.getValue(directive);
console.log('the value is: ' + value);
};
instance.getVolume({value: 10});
如注释所示箭头函数导致this指向了window对象。