标签:代码 方法 上下 ons window 定义函数 apply function nbsp
call()
或者apply()
、bind()
调用箭头函数时,无法对this进行绑定(无法使用call()
或者apply()
、bind()
改变this的指向),即传入的第一个参数被忽略。内部的this指向父执行上下文里面的this。箭头函数中的this是在定义函数的时候绑定,看一个例子:
var x = 11;
var obj = {
x: 22,
say: ()=>{
console.log(this.x);
}
}
obj.say(); // 输出的值为11
所谓的定义时候绑定,就是this是继承自父执行上下文中的this,比如这里的箭头函数中的this.x
,箭头函数本身与say平级以key:value
的形式,也就是箭头函数本身所在的对象为obj,而obj的父执行上下文就是window,因此这里的this.x
实际上表示的是window.x,因此输出的是11。
而对于下面的例子:
var obj = {
birth: 1990,
getAge: function () {
var b = this.birth; // 1990
var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
return fn();
}
};
obj.getAge(); // 28
例子中箭头函数本身是在getAge方法中定义的,因此,getAge方法的父执行上下文是obj,因此这里的this指向则为obj对象。
标签:代码 方法 上下 ons window 定义函数 apply function nbsp
原文地址:https://www.cnblogs.com/itgezhu/p/12022415.html