JavaScript的this是什么,用来干啥?

JavaScript的this是什么,用来干啥?

在函数执行的时候,函数内部会在底层上自动创建两个变量 arguments和this
标准一些的讲 this指向函数的上下文
通俗来说 :

  • 一般情况下一个函数 ,是谁调用的,this就指向谁
  • call方法、apply方法,可以改变一个函数的this指向到你指定的对象
  • 对于构造函数来说,this会指向由这个构造函数创建的实例
//情况1  
function fn(){
	console.log(this)
}
fn()
//这里实际上,是默认的用window对象调用fn 所以打印出来的是window对象
var obj={
	fn2:function(){
	console.log(this)
	}
}
obj2.fn()
//这时候 是obj在调用 所以 this就是obj
//至于dom和bom操作那些,是dom和bom触发的函数,this就是那个dom或者bom了

//情况2
/*
	call()和apply()会让函数的this在修改的地方运行 
	call()和apply()的第一个参数 都是this要指定的对象 
	call()从第二个参数开始会把参数依次传递给执行的函数 
	apply()第二个参数需要一个数组,保存所有要传递给执行函数的参数
*/
fn.call(obj)

//情况3  构造函数
function Ink(name){
  this.name=name
  console.log(this)
}

var snow=new Ink('HL')
//构造函数,这里的new关键字其实就是干了这样一件事
var snow = (function(){
	var obj = {}
	obj.__proto__=Ink.prototype
	Ink.call(obj,'HL')//注意这里  就是让this指向这个obj了
	return obj//然后再返回出去,this指向的对象,也让snow指向了
})()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值