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

資訊專欄INFORMATION COLUMN

復(fù)習(xí) JavaScript 關(guān)鍵字 this

godiscoder / 2444人閱讀

摘要:方法調(diào)用當(dāng)一個(gè)函數(shù)作為一個(gè)對(duì)象的屬性調(diào)用時(shí)候下標(biāo)表達(dá)式或者點(diǎn)表達(dá)式稱之為方法調(diào)用,此時(shí)指向這個(gè)對(duì)象。作為構(gòu)造函數(shù)調(diào)用的方式稱為的構(gòu)造函數(shù),的過程中構(gòu)造函數(shù)的對(duì)象的屬性和方法將被加到新對(duì)象的屬性上。

this

this是js的一個(gè)關(guān)鍵字,只能在函數(shù)內(nèi)部使用,在函數(shù)運(yùn)行時(shí)候自動(dòng)生成的內(nèi)部對(duì)象,代表函數(shù)運(yùn)行時(shí)候的作用域指向,使用頻率極高!

常用的用法與作用域指向

函數(shù)調(diào)用:js里面規(guī)定當(dāng)一個(gè)函數(shù)并非某一個(gè)對(duì)象,直接調(diào)用的時(shí)候,稱之為函數(shù)調(diào)用,此時(shí)this指向全局對(duì)象Global。

var t = 1;
function test(){
    console.log(this.t)
}
test() //1

方法調(diào)用:當(dāng)一個(gè)函數(shù)作為一個(gè)對(duì)象的屬性調(diào)用時(shí)候([fn]下標(biāo)表達(dá)式或者.fn點(diǎn)表達(dá)式)稱之為方法調(diào)用,此時(shí)this指向這個(gè)對(duì)象。

var t =1;
var obj= {
     t:2,
     test :function(){
         console.log(this.t)
     }
}
obj.test() // 2

作為構(gòu)造函數(shù)調(diào)用:var test = new fn() 的方式 稱fn為test的構(gòu)造函數(shù),new的過程中構(gòu)造函數(shù)的this對(duì)象的屬性和方法將被加到新對(duì)象的屬性上。

    function fn(){
        this.t = 1
    }
    var test = new fn();
    test.t // 1
    //fn的this對(duì)象會(huì)被加到新生成的test對(duì)象上 

4:apply,call,bind方式調(diào)用:apply,call,bind都可以改變一個(gè)函數(shù)運(yùn)行時(shí)候的this指向。

var t = 1
var test = function(){
    console.log(this.t)
}
test() //1
test.call({t:2}) //2
test.apply({t:3})//3
test.bind({t:4})()//4

關(guān)于bind的分析,可以看另一篇文章:bind方法分析與實(shí)現(xiàn)

看完了上面4種調(diào)用方式可以得出一個(gè)結(jié)論this指向的作用域永遠(yuǎn)是函數(shù)運(yùn)行時(shí)候決定的。

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

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

相關(guān)文章

  • 重新復(fù)習(xí)js

    摘要:復(fù)習(xí)基礎(chǔ)到底是什么的應(yīng)用場(chǎng)合極其廣泛。常量不可以通過重新賦值改變其值,也不可以在代碼運(yùn)行時(shí)重新聲明。布爾對(duì)象是原始布爾數(shù)據(jù)類型的一個(gè)包裝器整數(shù)整數(shù)可以用十進(jìn)制基數(shù)為十六進(jìn)制基數(shù)為八進(jìn)制基數(shù)為以及二進(jìn)制基數(shù)為表示。 復(fù)習(xí)js day1 js基礎(chǔ) JavaScript 到底是什么 JavaScript 的應(yīng)用場(chǎng)合極其廣泛。簡(jiǎn)單到幻燈片、照片庫、浮動(dòng)布局和響應(yīng)按鈕點(diǎn)擊。復(fù)雜到游戲、2D 和 ...

    xuexiangjys 評(píng)論0 收藏0
  • 【重溫基礎(chǔ)】15.JS對(duì)象介紹

    摘要:構(gòu)造函數(shù)通常首字母大寫,用于區(qū)分普通函數(shù)。這種關(guān)系常被稱為原型鏈,它解釋了為何一個(gè)對(duì)象會(huì)擁有定義在其他對(duì)象中的屬性和方法。中所有的對(duì)象,都有一個(gè)屬性,指向?qū)嵗龑?duì)象的構(gòu)造函數(shù)原型由于是個(gè)非標(biāo)準(zhǔn)屬性,因此只有和兩個(gè)瀏覽器支持,標(biāo)準(zhǔn)方法是。 從這篇文章開始,復(fù)習(xí) MDN 中級(jí)教程 的內(nèi)容了,在初級(jí)教程中,我和大家分享了一些比較簡(jiǎn)單基礎(chǔ)的知識(shí)點(diǎn),并放在我的 【Cute-JavaScript】系...

    booster 評(píng)論0 收藏0
  • 復(fù)習(xí)javascript中call,apply,bind的用法

    摘要:綁定函數(shù)被調(diào)用時(shí),也接受預(yù)設(shè)的參數(shù)提供給原函數(shù)。一個(gè)綁定函數(shù)也能使用操作符創(chuàng)建對(duì)象這種行為就像把原函數(shù)當(dāng)成構(gòu)造器。 一直很難理解js中的call apply bind,在w3schools,mdn閱讀了,也看了很多相關(guān)的文章,今天我來寫下我理解的call apply bind 首先創(chuàng)建一個(gè)函數(shù) function man(){} man.prototype = { name: ...

    darryrzhong 評(píng)論0 收藏0
  • JS函數(shù)的一些基礎(chǔ)知識(shí)

    摘要:為了更好的講解構(gòu)造函數(shù)原型原型鏈等,我們需要復(fù)習(xí)一下函數(shù)的一些基礎(chǔ)知識(shí)。閉包在復(fù)習(xí)了函數(shù)的相關(guān)基礎(chǔ)知識(shí)之后,我們終于可以進(jìn)入閉包。我們可以這樣理解閉包,首先,閉包是一個(gè)函數(shù),是一個(gè)什么樣子的函數(shù)呢是一個(gè)可以訪問另一個(gè)函數(shù)中變量的函數(shù)。 為了更好的講解構(gòu)造函數(shù)、原型、原型鏈等,我們需要復(fù)習(xí)一下函數(shù)的一些基礎(chǔ)知識(shí)。接下來,就讓我們一起回味一些JS的基礎(chǔ)知識(shí)點(diǎn)。 全局變量VS局部變量 簡(jiǎn)單粗...

    Ashin 評(píng)論0 收藏0
  • 復(fù)習(xí)Javascript專題(三):面向?qū)ο螅▽?duì)象的創(chuàng)建與繼承,原型及原型鏈)

    摘要:在創(chuàng)建子類實(shí)例時(shí),不能向超類型的構(gòu)造函數(shù)中傳遞參數(shù)。構(gòu)造函數(shù)繼承子類傳進(jìn)的值是基本思想是在子類構(gòu)造函數(shù)的內(nèi)部調(diào)用超類或父類型構(gòu)造函數(shù)。繼承保證構(gòu)造函數(shù)指針指向如果想同時(shí)繼承多個(gè),還可使用添加屬性的方式類繼承, OOP:Object Oriented Programming 面向?qū)ο缶幊獭?題外話:面向?qū)ο蟮姆秶鷮?shí)在太大,先把這些大的東西理解理解。 1.什么是對(duì)象? 根據(jù)高程和權(quán)威指南上...

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

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

0條評(píng)論

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