在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧。
JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式:
1.函数调用模式
当一个函数不是一个对象的属性时,当作函数俩调用,这时函数内的this指向全局对象(大对数情况下是window)
window.value=1; function getValue(){ console.log(this.value); } getValue();//输出1,此时的this指向window
2.方法调用模式
当一个函数是一个对象的属性时,我们称它为该对象的一个方法,当一个方法被调用时,this指向该对象
var Obj={ value:2, getValue:function(){ console.log(this.value);//输出2,this指向Obj } }
!!!该模式中,this到对象的绑定发生在方法被调用时
3.构造器调用模式
使用new调用的函数称为构造器函数,此时的this指向该构造器函数实例出来的对象
function main(val){ this.value=val; } main.prototype.getValue=function(){ console.log(this.value); } var fun=new main(3); fun.getValue(); fun.value;//输出3,this指向main的实例对象fun
4.apply/call调用模式以及bind
apply、call、bind方法可以让我们设定调用者中的this指向谁
function showValue(){ console.log(this.value); } var obj={ value:4 } showValue.call(obj)//输出4,this指向了obj对象
ECMA5中新增了bind方法,具体用法可以google一下,这里是演示this绑定的用法
function showValue(){ console.log(this.value); } var obj={ value:4 } var showValue2=showValue.bind(obj); showValue2()//输出4,this指向了obj对象
bind有很多种用法,可以自己去查阅一下哦
以上这篇老生常谈 js中this的指向就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
js中this的指向
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“老生常谈 js中this的指向”评论...
更新动态
2024年11月13日
2024年11月13日
- 来参加「花羽会」的飞行训练吧!
- 群星 《蓝调激情》2CD[DTS-WAV分轨][1.6G]
- 李宗盛《理性与感性 作品音乐会》2CD[低速原抓WAV+CUE][1.8G]
- 群星《华语贺年金曲》K2HD[WAV+CUE][697M]
- 群星《酒廊夜色美》2CD[DTS-WAV]
- 群星《2024好听新歌35》AI调整音效【WAV分轨】
- 神秘园《讲故事的人》2019[FLAC+CUE/整轨]
- 张智霖VS许秋怡.1991-现代爱情故事【永高创意】【WAV+CUE】
- 忧欢派对.1988-忧欢派对【飞碟】【WAV+CUE】
- 群星.2009-他的沧海遗珠精选(金碟铁盒珍藏系列)【SONY】【WAV+CUE】
- 刘德华《经典金曲》[WAV+CUE][833M]
- 邓丽君《千言万语》SACD德国限量版[低速原抓WAV+CUE][1G]
- 王闻VS曼里《不老情歌》经典粤语情歌[低速原抓WAV分轨][1G]
- 英雄联盟faker有多少联赛冠军 faker联赛冠军数量介绍
- 炉石传说酒馆战棋分数等级段位介绍 酒馆战棋分数最新等级划分一览