var obj = {
count : 1,
add : function(a) {
var f = v => v + this.count
return f(a);
},
add1 : function(a) {
var b = {
count : 2
};
var f = v => v + this.count;
return f.call(b,a);
},
add2: function(a) {
var b = {
count: 2
};
var f = function(v){return v + this.count};
return f.call(b,a);
}
};
console.log(obj.add(1)); //2
console.log(obj.add1(1)); //2
console.log(obj.add2(1)); //3
总结:
哪个对象调用了函数,该函数里面的this就指向谁!如果一个函数没有明确的调用者,则this就默认指向window对象,箭头函数比较特殊,箭头函数没有this,箭头函数里面的this继承外面的环境!即箭头函数外面环境的this指向谁,箭头函数的this就指向谁。
要更全面了解,可以参考以下文章:https://www.cnblogs.com/zjjDaily/p/9482958.html