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

資訊專欄INFORMATION COLUMN

this的指向(簡單描述版)

tracy / 1162人閱讀

摘要:的指向簡單描述版函數(shù)的調(diào)用在的面向?qū)ο笾惺潜硎竞瘮?shù)調(diào)用相關(guān)聯(lián)的對象函數(shù)的上下文。結(jié)語關(guān)于的指向是前端面試中經(jīng)常出現(xiàn)的問題,以上只是暫時簡短總結(jié)了一下結(jié)果而已,后面會對各個函數(shù)調(diào)用的方式進行深入解析。

this的指向(簡單描述版) 函數(shù)的調(diào)用
在JS的面向?qū)ο笾?b>this是表示函數(shù)調(diào)用相關(guān)聯(lián)的對象(函數(shù)的上下文)。所以要想了解this的指向,我們先要清楚函數(shù)的調(diào)用的方式

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

function add(a,b) {
    return a + b;
}

add(1,2);

以上代碼就是函數(shù)作為函數(shù)直接被調(diào)用,那么在這種情況下,函數(shù)上下文(this)就有兩種可能性質(zhì)

在瀏覽器環(huán)境中,this指向了window對象

在嚴格模式下將會是undefined

2.作為方法被調(diào)用

var method = {};
method.add = function () {};
method.add();

當一個函數(shù)被賦值給一個對象屬性,并且通過對象屬性引用的方式時候,函數(shù)就會被作為對象的方法被調(diào)用。那么在這種情況下,this指向的就是引用該方法的宿主對象

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

let person = new Person();

在使用new的時候會有如下動作

創(chuàng)建一個新對象

該對象作為this參數(shù)傳遞給構(gòu)造函數(shù),成為構(gòu)造函數(shù)的上下文

新構(gòu)造函數(shù)對象作為new的返回值

4.使用call,apply方法調(diào)用

function arguNum() {
    var result = 0;
    for(var i = 0; i < arguments.length; i++) {
        result += arguments[i];
    }

    this.result = result;
}

var obj1 = {};
var obj2 = {};

arguNum.apply(obj1, [1,2,3]);  // 6
arguNum.call(obj2, 1,2,3);  // 6

使用call,apply可以改變this的指向,call&apply區(qū)別在于傳遞的參數(shù)是通過什么方式,call傳遞的是參數(shù)列表,apply傳遞的是一個數(shù)組。

結(jié)語

關(guān)于this的指向是前端面試中經(jīng)常出現(xiàn)的問題,以上只是暫時簡短總結(jié)了一下結(jié)果而已,后面會對各個函數(shù)調(diào)用的方式進行深入解析。

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

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

相關(guān)文章

  • 【Vue原理】依賴收集 - 源碼之基本數(shù)據(jù)類型

    摘要:當東西發(fā)售時,就會打你的電話通知你,讓你來領(lǐng)取完成更新。其中涉及的幾個步驟,按上面的例子來轉(zhuǎn)化一下你買東西,就是你要使用數(shù)據(jù)你把電話給老板,電話就是你的,用于通知老板記下電話在電話本,就是把保存在中。剩下的步驟屬于依賴更新 寫文章不容易,點個贊唄兄弟專注 Vue 源碼分享,文章分為白話版和 源碼版,白話版助于理解工作原理,源碼版助于了解內(nèi)部詳情,讓我們一起學習吧研究基于 Vue版本 【...

    VincentFF 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<