this指向问题⭐⭐⭐

本文详细介绍了JavaScript中函数的this指向规则,包括new关键字、call/apply/bind方法、上下文对象调用以及默认绑定的情况。理解this的关键在于识别其在不同调用场景下的绑定对象,这对于JavaScript编程至关重要。
摘要由CSDN通过智能技术生成

函数的this指向是根据函数调用时所处的执行环境来确定的。
this指向对象的情况有四种:
1.使用new关键字时:this会绑定构造函数所创建的对象。

	function Foo(){    
	this.a = 1;  
	} 
	var bar = new Foo();  //此时this绑定为Foo构造函数所创建的对象。

2.使用 call, apply, bind方法调用:this 会绑定 call, apply 的第一个参数的引用对象。

	function foo(){  
		console.log(this.name);  } 
		var a = {name : "i'm apply!"};
		var b = {name : "i'm bind!"};
		var c = {name : "i'm call!"}; 

		foo.apply(a);   //此时this 绑定在a对象;
		foo.bind(b);    //此时this 绑定在b对象;
		foo.call(c);    //此时this 绑定在c对象;

3.在某个上下文的对象中被调用:this绑定所处上下文对象。
4.默认绑定:this 在 “严格模式下为”:undefined, “非严格模式下”绑定全局对象。

function foo(){
  console.log(this.name);  
}

var f = {
  name: "i'm foo!",
  foo: foo  
}

f.foo() // 此时this绑定在foo对象;

var name = "window";
foo() //此时this默认绑定全局对象;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值