成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【JavaScript】this指的是誰(shuí)?

ytwman / 401人閱讀

摘要:引用的是函數(shù)功能據(jù)以執(zhí)行的環(huán)境對(duì)象,因此的值與調(diào)用函數(shù)的方式有著密切的關(guān)系。調(diào)用構(gòu)造函數(shù)在調(diào)用構(gòu)造函數(shù)時(shí)返回,指向構(gòu)造函數(shù)創(chuàng)建的實(shí)例中,指向?qū)嵗龑?duì)象。則函數(shù)內(nèi)部的指向方法指定的對(duì)象。若閉包在全局作用域中調(diào)用,則指向。

在函數(shù)創(chuàng)建的時(shí)候,函數(shù)內(nèi)部自動(dòng)獲取到this(還有一個(gè)arguments)。this引用的是函數(shù)功能據(jù)以執(zhí)行的環(huán)境對(duì)象,因此this的值與調(diào)用函數(shù)的方式有著密切的關(guān)系。

作為函數(shù)調(diào)用時(shí),this指向window。

   var name = "window";
   function sayName() {
       console.log(this.name);
   }
   sayName(); //window

作為對(duì)象的方法調(diào)用時(shí),this指向該對(duì)象。

   var obj = {
       name: "object",
       sayName: function() {
           console.log(this.name);
       }
   };
   obj.sayName(); //object
   (obj.sayName = obj.sayName)(); //window
   (obj.sayName, obj.sayName)(); //window

賦值語(yǔ)句和逗號(hào)運(yùn)算符都會(huì)返回后面變量的值,所以后兩者相當(dāng)于在全局中調(diào)用了函數(shù),this指向了window

調(diào)用構(gòu)造函數(shù)
在調(diào)用構(gòu)造函數(shù)時(shí)返回this,this指向構(gòu)造函數(shù);創(chuàng)建的實(shí)例中,this指向?qū)嵗龑?duì)象。

   function Person(n) {
       console.log(this);
       this.name = n;
       this.sayName = function() {
           return this.name;
       };
   }
   var person = new Person("hiyohoo"); //Person{}
   console.log(person.sayName()); //hiyohoo

調(diào)用函數(shù)時(shí)指定this。在調(diào)用函數(shù)時(shí)如果使用函數(shù)方法call()、apply()、bind()。則函數(shù)內(nèi)部的this指向方法指定的對(duì)象。而一旦被bind()指定了this值,之后不管以何種方式調(diào)用函數(shù),其this值始終指向bind()指定的對(duì)象環(huán)境。

   var outer = {
       name: "outer",
       inner: {
           name: "inner",
           t: function() {
               return this.name;
           }
       }
   };
   console.log(outer.inner.t()); //inner
   console.log(outer.inner.t.bind(outer)()); //outer

閉包中的this。若閉包在全局作用域中調(diào)用,則this指向window。這里我們用定時(shí)器做例子:

   var name = "window";
   var obj = {
       name: "object",
       sayName: function() {
           setInterval(function() {
               console.log(this.name);
           }, 1000);
       }
   };
   obj.sayName(); //window

作為dom綁定事件的回調(diào)函數(shù)。this指向這個(gè)dom元素。

轉(zhuǎn)載請(qǐng)注明出處:https://segmentfault.com/a/1190000004587440

文章不定期更新完善,如果能對(duì)你有一點(diǎn)點(diǎn)啟發(fā),我將不勝榮幸。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78867.html

相關(guān)文章

  • JavaScript的創(chuàng)世神話——一切源于對(duì)象

    摘要:但是,中并沒(méi)有類的概念,而是通過(guò)構(gòu)造函數(shù)替代了類的功能,為某一類的對(duì)象提供共同的屬性和方法。一只名叫的狗,首先繼承了構(gòu)造函數(shù)的原型對(duì)象,而的原型對(duì)象中的有繼承了函數(shù)的原型對(duì)象,函數(shù)對(duì)象中的有繼承了的原型對(duì)象。 《圣經(jīng)》里的第一章創(chuàng)世紀(jì)中其中有一段經(jīng)典記載上帝是如何創(chuàng)造人的。神說(shuō):我們要照著我們的形象,按照我們的樣式造人。不謀而合的是,JavaScript中似乎也遵循著上帝的旨意去創(chuàng)造程...

    enda 評(píng)論0 收藏0
  • 前端面試基本知識(shí)點(diǎn)——javascript

    摘要:又到一年春招季,們又要奔波于一場(chǎng)又一場(chǎng)的面試。今天就先來(lái)小小總結(jié)一下方面的知識(shí)點(diǎn),方便你我他。在發(fā)送請(qǐng)求前加上。在后面加上時(shí)間搓。這樣頁(yè)面的所有都會(huì)執(zhí)行這條語(yǔ)句就是不需要保存緩存記錄。如何解決跨域問(wèn)題服務(wù)器上設(shè)置代理頁(yè)面 又到一年春招季,coder們又要奔波于一場(chǎng)又一場(chǎng)的面試。今天就先來(lái)小小總結(jié)一下javascript方面的知識(shí)點(diǎn),方便你我他。隨時(shí)補(bǔ)充 js基本數(shù)據(jù)類型 Undef...

    hankkin 評(píng)論0 收藏0
  • JS基礎(chǔ)入門篇(四)—this的使用,模擬單選框,選項(xiàng)卡和復(fù)選框

    摘要:建立索引,記錄每一個(gè)節(jié)點(diǎn)值。選項(xiàng)卡模擬選項(xiàng)卡方法一大清洗,在設(shè)置顏色之前把所有的顏色值設(shè)為空。宋體選項(xiàng)卡一選項(xiàng)卡二選項(xiàng)卡三內(nèi)容一內(nèi)容二內(nèi)容三方法二點(diǎn)擊什么,清除什么。 1.this的使用 this js中的關(guān)鍵字 js內(nèi)部已經(jīng)定義好了,可以不聲明 直接使用 this的指向問(wèn)題 1. 在函數(shù)外部使用 this指向的是window 2...

    tanglijun 評(píng)論0 收藏0
  • JS基礎(chǔ)入門篇(四)—this的使用,模擬單選框,選項(xiàng)卡和復(fù)選框

    摘要:建立索引,記錄每一個(gè)節(jié)點(diǎn)值。選項(xiàng)卡模擬選項(xiàng)卡方法一大清洗,在設(shè)置顏色之前把所有的顏色值設(shè)為空。宋體選項(xiàng)卡一選項(xiàng)卡二選項(xiàng)卡三內(nèi)容一內(nèi)容二內(nèi)容三方法二點(diǎn)擊什么,清除什么。 1.this的使用 this js中的關(guān)鍵字 js內(nèi)部已經(jīng)定義好了,可以不聲明 直接使用 this的指向問(wèn)題 1. 在函數(shù)外部使用 this指向的是window 2...

    hot_pot_Leo 評(píng)論0 收藏0
  • JS基礎(chǔ)入門篇(四)—this的使用,模擬單選框,選項(xiàng)卡和復(fù)選框

    摘要:建立索引,記錄每一個(gè)節(jié)點(diǎn)值。選項(xiàng)卡模擬選項(xiàng)卡方法一大清洗,在設(shè)置顏色之前把所有的顏色值設(shè)為空。宋體選項(xiàng)卡一選項(xiàng)卡二選項(xiàng)卡三內(nèi)容一內(nèi)容二內(nèi)容三方法二點(diǎn)擊什么,清除什么。 1.this的使用 this js中的關(guān)鍵字 js內(nèi)部已經(jīng)定義好了,可以不聲明 直接使用 this的指向問(wèn)題 1. 在函數(shù)外部使用 this指向的是window 2...

    CoderDock 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<