JS回调函数中的this指向

什么是this:自动引用正在调用当前方法的.前的对象。
this指向的三种情况

  1. obj.fun() fun中的this->obj,自动指向.前的对象

  2. new Fun() Fun中的this->正在创建的新对象,new改变了函数内部的this指向,导致this指向实例化new的对象

  3. fun()和匿名函数自调 this默认->window,函数内部的this,this默认是指向window的

//对象直接调用函数
var   name="the  window";
		var  object={
				name:"silence",
				packname:function(){
						return   this.name;
				}
		}
		console.log(object.packname());
//对象调用了函数得到的值赋值给了一个对象然后再次调用
var   name="the  window";
		var  object={
				name:"silence",
				packname:function(){
						return   this.name;
				}
		}
		var  show=object.packname;
		console.log(show());

当没有明确的执行时的当前对象时,this指向全局对象window。

这里show=object.packname;show();这里show没有明确的指明执行对象,所以等同于 window.show();结果是 the window
理解一下什么是全局对象

1   var name=“the window”;
2 var silence={
3 name:“silence”,
4 packname:function(){
5 return this.name;
6 }
7 }
8 var seraph={
9 name:“seraph”,
10 packname:function(){
11 var fun=silence.packname;
12 return fun();
13 }
14 }
15 console.log(seraph.packname());

与2类似,fun();得到the window,fun()可以看出函数内部的函数指向window。我是这样理解的。

就是注意看对象的this的指向

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值