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

資訊專欄INFORMATION COLUMN

JavaScript之this指向

leeon / 3343人閱讀

摘要:中是在運(yùn)行的時(shí)候進(jìn)行綁定的,這是中關(guān)鍵字具備多重含義的本質(zhì)原因。所以,中的可以是全局對(duì)象當(dāng)前對(duì)象或者是任意對(duì)象。

Js中this是在運(yùn)行的時(shí)候進(jìn)行綁定的,這是Js中this關(guān)鍵字具備多重含義的本質(zhì)原因。所以,Js中的this可以是全局對(duì)象、當(dāng)前對(duì)象或者是任意對(duì)象。這完全取決于函數(shù)的調(diào)用方式,而js中函數(shù)的調(diào)用有以下幾種方式:

作為對(duì)象方法調(diào)用

作為函數(shù)調(diào)用

作為構(gòu)造函數(shù)調(diào)用

使用apply或call調(diào)用

根據(jù)以下判斷,判別this分別指向什么:
1.函數(shù)調(diào)用是用new進(jìn)行調(diào)用的嗎?如果是,則this指向新創(chuàng)建的對(duì)象,否則進(jìn)行下一步判斷
2.判斷該函數(shù)是否是用dot(.)進(jìn)行調(diào)用的,如果是的話,那么this指向dot(.)之前的對(duì)象;否則this指向全局對(duì)象window.

四種調(diào)用方式中this的指向

函數(shù)調(diào)用模式中this指全局對(duì)象(window)

     var f1 = function() {
            alert("這個(gè)是函數(shù)調(diào)用");
            alert(this);//window
          };
          f1();

方法調(diào)用
 由對(duì)象調(diào)用方法(當(dāng)對(duì)象為null的時(shí)候,函數(shù)進(jìn)行函數(shù)調(diào)用模式,當(dāng)對(duì)象不為null的時(shí)候,函數(shù)實(shí)現(xiàn)方法調(diào)用模式)
 在方法調(diào)用模式中 this 表示當(dāng)前對(duì)象

    var o = {name:"小明"};
      o.say = function() {
        alert(this.name);//小明
        alert(this);//o
      };
      o.say();

任何一個(gè)函數(shù)放在new 后面就是構(gòu)造函數(shù),構(gòu)造函數(shù)的this是構(gòu)造函數(shù)返回的對(duì)象,構(gòu)造函數(shù)的return發(fā)生變化,如果返回的是對(duì)象,直接返回,否則返回創(chuàng)建出來(lái)的對(duì)象

  var Person = function(n) {
    this.name = n;
     return {

     name:"男",
     get:function(){
         console.log(this.name);
     };
    // return 123;
  }
  var p = new Person();

函數(shù)的apply調(diào)用模式和call調(diào)用模式
語(yǔ)法:
  函數(shù)名.apply(對(duì)象, [參數(shù)數(shù)組]);
   函數(shù)名.call(對(duì)象, 參數(shù)列表);

  var func = function() {
    this.name = "小明";
    this.say = function(){alert(this.name + "學(xué)習(xí)好");};
  };
  func.apply(null); // 等價(jià)于 func();

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

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

相關(guān)文章

  • 學(xué)習(xí)JavaScriptthis,call,apply

    摘要:在全局對(duì)象中調(diào)用,自然讀取的是全局對(duì)象的值構(gòu)造器調(diào)用說(shuō)明作為構(gòu)造器調(diào)用時(shí),指向返回的這個(gè)對(duì)象。最直觀的表現(xiàn)就是,去看一些優(yōu)秀框架的源代碼時(shí),不再是被繞的暈乎乎的。 學(xué)習(xí)起因: 在之前的JavaScript學(xué)習(xí)中,this,call,apply總是讓我感到迷惑,但是他們的運(yùn)用又非常的廣泛。遂專門(mén)花了一天,來(lái)弄懂JavaScript的this,call,apply。中途參考的書(shū)籍也很多,以...

    wenhai.he 評(píng)論0 收藏0
  • JavaScript this 指向問(wèn)題

    摘要:一等公民對(duì)象函數(shù)在提指向問(wèn)題之前,肯定是有必要說(shuō)明一等公民對(duì)象,既然是對(duì)象,那么就能像普通的值一樣傳遞。在普通瀏覽器中指向的是在中指向的是全局對(duì)象全局環(huán)境中或者模塊環(huán)境中。即指向或者的第一個(gè)參數(shù)。第二條規(guī)則,指向的不是原文鏈接 1. 一等公民對(duì)象——函數(shù) 在提t(yī)his指向問(wèn)題之前,肯定是有必要說(shuō)明一等公民對(duì)象function ,既然function是對(duì)象,那么就能像普通的值一樣傳遞。嗯...

    Alan 評(píng)論0 收藏0
  • javascript基礎(chǔ)this

    摘要:出現(xiàn)箭頭函數(shù)的時(shí)候,指向?yàn)槎x時(shí)的上下文對(duì)象而非指向時(shí),并且不能被改變首先我們先看一個(gè)例子由上面的例子我們可以看出來(lái)此時(shí)指針在用改變了之后指向的依然是全局對(duì)象非嚴(yán)格瀏覽器環(huán)境中是而非。 javascript基礎(chǔ)之this指針 越往后面學(xué)越發(fā)現(xiàn)基礎(chǔ)的重要性,所以打算重新過(guò)一遍基礎(chǔ),之后出幾個(gè)vue和react的實(shí)戰(zhàn)教程。ok,嚴(yán)歸正傳。 首先什么是this this是執(zhí)行上下文創(chuàng)建時(shí)確定...

    Zoom 評(píng)論0 收藏0
  • JavaScriptthis對(duì)象詳解

    摘要:再來(lái)看一個(gè)小的示例淘寶騰訊淘寶為什么輸出的依然是淘寶呢調(diào)用的是對(duì)象中的方法,方法里面有一個(gè)定時(shí)器,而定時(shí)器的一個(gè)參數(shù)是這里的指的就是的對(duì)象,然后方法里面有調(diào)用了,但是定時(shí)器中的指的是對(duì)象,所以最終調(diào)用的是對(duì)象中。 1.看前熱身 看一段代碼 var name = javascript; var obj = { name:js, foo:f...

    Integ 評(píng)論0 收藏0
  • javascript技術(shù)難點(diǎn)(三)this、new、apply和call詳解

    摘要:第四點(diǎn)也要著重講下,記住構(gòu)造函數(shù)被操作,要讓正常作用最好不能在構(gòu)造函數(shù)里 4) this、new、call和apply的相關(guān)問(wèn)題 講解this指針的原理是個(gè)很復(fù)雜的問(wèn)題,如果我們從javascript里this的實(shí)現(xiàn)機(jī)制來(lái)說(shuō)明this,很多朋友可能會(huì)越來(lái)越糊涂,因此本篇打算換一個(gè)思路從應(yīng)用的角度來(lái)講解this指針,從這個(gè)角度理解this指針更加有現(xiàn)實(shí)意義。 下面我們看看在ja...

    ghnor 評(píng)論0 收藏0
  • JavaScript深入bind的模擬實(shí)現(xiàn)

    摘要:也就是說(shuō)當(dāng)返回的函數(shù)作為構(gòu)造函數(shù)的時(shí)候,時(shí)指定的值會(huì)失效,但傳入的參數(shù)依然生效。構(gòu)造函數(shù)效果的優(yōu)化實(shí)現(xiàn)但是在這個(gè)寫(xiě)法中,我們直接將,我們直接修改的時(shí)候,也會(huì)直接修改函數(shù)的。 JavaScript深入系列第十一篇,通過(guò)bind函數(shù)的模擬實(shí)現(xiàn),帶大家真正了解bind的特性 bind 一句話介紹 bind: bind() 方法會(huì)創(chuàng)建一個(gè)新函數(shù)。當(dāng)這個(gè)新函數(shù)被調(diào)用時(shí),bind() 的第一個(gè)參數(shù)...

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

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

0條評(píng)論

閱讀需要支付1元查看
<