ES6相关技术概要-this指向

this 指向

this 在字面量是这个的意思
定义:this是一个使用在作用域内部(函数/全局)的关键字,
全局很少用,大部分是在函数内部使用
指向:
	全局:this => window
	函数内部使用:不管函数如何定义,只看函数的调用,箭头函数除外
	->普通调用/直接调用/全局调用
		+ 函数名()
	->对象调用
		+ xxx.函数名()  Math.random()  -> .点前面是谁就是谁
	->定时器处理函数
		+ setTimeout(function () {},0); this 指向window
		+ setInterval(function () {},0); this 指向window
	->事件处理函数
		+ xxx.onclick = function() { } this 指向事件源(绑定在谁身上的事件)
		+ xxx.addEventListener('click',function () {})  this 指向事件源(绑定在谁身上的事件)
	->自执行函数
		+ (function () {})() this 指向window

强行改变this指向

+ this有其本身的指向性
+ 不管你本身指向谁,我让你指向谁,就可以指向谁
+ 三个方法
	1.call()
	2.apply()
	3.bind()
1.call()
	+ 使用方法,就直接连接在函数名后面使用
	+ 语法:
		-> fn.call()
		-> obj.fn.call()
	+ 参数:
		-> 第一个参数,就是函数内部的 this 指向	
		-> 第二个参数,就是依次给函数传递参数
	+ 特点:会立即执行函数(不适合事件处理函数,不适合定时器)
	+ 作用:伪数组借用数组方法
2.apply()
	+ 使用方法,直接连接在函数后面使用
	+ 语法:
		-> fn.apply()
		-> obj,fn.apply()
	+ 参数:
		-> 第一个参数,函数内部的this指向
		-> 第二个参数, 是一个数组或者是伪数组
	+ 特点:
		-> 会立即执行函数
	+ 作用:
		-> 可以以数组的形式给某些功能函数传参 
3.bind()
	+ 使用方法,直接在函数名后面连接
	+ 语法:
		-> fn.bind()
		-> obj.fn.bind()
	+ 参数:
		-> 第一个参数,就是函数内部的 this 指向
		-> 从第二个参数开始,依次给函数传递参数
	+ 特点:
		-> 不会立即执行函数,返回一个新函数,一个this指向已经改变好的函数
	+ 作用:
		->  一般用于改变事件处理函数或者定时器函数的this指向
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值