this

16.1.1. this是一个对象。
在这里插入图片描述
this出现在全局的代码块中,它就是window对象。
在这里插入图片描述
这里的this出现在一个对象的方法中,它就是对象本身。

16.1.2. 到处都有this
只要你能够写js的地方,就可以写this.
在这里插入图片描述
16.1.3. 不能手动地修改this的值
在这里插入图片描述
它不能出现在=的左边!
16.2. 确定this的值
16.2.1. 出现在函数的外部
这个this外层没有function,并且它不出现某一个对象的事件响应函数的内部。
在这里插入图片描述
这种情况:只有一个答案就是window.
如下情况:
在这里插入图片描述
This是这个button对象。为什么不是window.
上面的js代码,等价于下面:
Btn.onclick = function(){ alert(“abc”);alert(this);}
这里this出现在function的内部,所以不是window.
16.2.2. 出现在函数的内部
16.2.2.1. 这个函数不是某一个对象的属性。
就是一个普通的被调用的函数。
在这里插入图片描述
16.2.2.2. 这个函数是一个对象的属性
在这里插入图片描述
这里的say是obj对象一个属性,则里面的this会指向obj(this === obj )。
16.2.2.3. 调用函数之前加一个new的话,会创建一个新的对象,而这个函数内部的this就会指向创建的新对象
在这里插入图片描述
注意:
只有在代码运行时,才能确定this的值。换句话,第22行运行时,this会指向f。
如果是如下代码:
在这里插入图片描述
则第22行运行时,this才指向window。

确定this的值:“谁调用我,我就指向谁”
this的值:只有在代码运行时,才能确定!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值