国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

老生常談 js中this的指向

2019-11-20 09:34:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在js中this的指向?qū)τ谛率謥?lái)說(shuō)一定是個(gè)難題,但是如果你真正理解了的話,也就沒(méi)什么問(wèn)題啦,下面就來(lái)講講this吧。

JS中,this的值取決于調(diào)用的模式(調(diào)用對(duì)象),而JS中共有4種調(diào)用模式:

1.函數(shù)調(diào)用模式

當(dāng)一個(gè)函數(shù)不是一個(gè)對(duì)象的屬性時(shí),當(dāng)作函數(shù)倆調(diào)用,這時(shí)函數(shù)內(nèi)的this指向全局對(duì)象(大對(duì)數(shù)情況下是window)

window.value=1;function getValue(){ console.log(this.value);}getValue();//輸出1,此時(shí)的this指向window

2.方法調(diào)用模式

當(dāng)一個(gè)函數(shù)是一個(gè)對(duì)象的屬性時(shí),我們稱它為該對(duì)象的一個(gè)方法,當(dāng)一個(gè)方法被調(diào)用時(shí),this指向該對(duì)象

var Obj={  value:2,  getValue:function(){       console.log(this.value);//輸出2,this指向Obj  }   }

!!!該模式中,this到對(duì)象的綁定發(fā)生在方法被調(diào)用時(shí)

3.構(gòu)造器調(diào)用模式

使用new調(diào)用的函數(shù)稱為構(gòu)造器函數(shù),此時(shí)的this指向該構(gòu)造器函數(shù)實(shí)例出來(lái)的對(duì)象

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的實(shí)例對(duì)象fun

4.apply/call調(diào)用模式以及bind

apply、call、bind方法可以讓我們?cè)O(shè)定調(diào)用者中的this指向誰(shuí)

function showValue(){  console.log(this.value);}var obj={  value:4}showValue.call(obj)//輸出4,this指向了obj對(duì)象

ECMA5中新增了bind方法,具體用法可以google一下,這里是演示this綁定的用法

function showValue(){  console.log(this.value);}var obj={  value:4}var showValue2=showValue.bind(obj);showValue2()//輸出4,this指向了obj對(duì)象

bind有很多種用法,可以自己去查閱一下哦

以上這篇老生常談 js中this的指向就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 玉山县| 肃宁县| 华池县| 湛江市| 仁怀市| 响水县| 黎川县| 嵊州市| 南昌县| 肥城市| 汽车| 舒城县| 堆龙德庆县| 雷州市| 蒙山县| 凉山| 吴堡县| 雷波县| 财经| 仪陇县| 资兴市| 郯城县| 新沂市| 车致| 利津县| 德钦县| 乌拉特中旗| 文登市| 上林县| 双江| 汝州市| 四会市| 安图县| 赣榆县| 含山县| 陵水| 马关县| 海门市| 九江市| 且末县| 溧阳市|