关于this的理解

this从哪来?

this是一个关键字,它不允许更改或者赋值,任何函数只要作为方法调用时实际上都会传入一个隐式的实参–这个实参是一个对象,方法调用的母体就是这个对象(this);

普通函数里面的this

1.当函数作为一个方法调用时: 调用的母体就是该对象;
2.当作普通函数调用时:调用的母体是window;
3.闭包里面的this:

var obj = function(){
	var one = 1;
	return function read(){
		console.log(one)
	}
}
obj()()
//这一步等价于
var step1 = obj();
var step2 = step1(); //window调用

箭头函数里面的this

es6转化为es5如下:
// ES6
function foo() {
  setTimeout(() => {
    console.log('id:', this.id);
  }, 100);
}

// ES5
function foo() {
  var _this = this;

  setTimeout(function () {
    console.log('id:', _this.id);
  }, 100);
}

因此箭头函数的this始终指向绑定它的对象,而不是调用它的对象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值