国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

函數(shù)調(diào)用拾遺

elisa.yang / 2155人閱讀

摘要:如果嵌套函數(shù)作為函數(shù)調(diào)用,指向全局對(duì)象或。構(gòu)造函數(shù)調(diào)用在圓括號(hào)里包含實(shí)參列表,則先計(jì)算實(shí)參表達(dá)式,這與函數(shù)調(diào)用和方法調(diào)用是一致的。構(gòu)造函數(shù)通常不使用,當(dāng)執(zhí)行完函數(shù)體后,會(huì)顯示返回。其中可以用來間接調(diào)用函數(shù)。

函數(shù)調(diào)用總結(jié)

通常構(gòu)成函數(shù)主題的JS代碼在定義之時(shí)是不會(huì)被執(zhí)行的,只有在調(diào)用函數(shù)是才會(huì)被執(zhí)行
有4種方式可以調(diào)用JS函數(shù)

函數(shù)調(diào)用
//定義函數(shù) factorial
function factorial(){
    if(x <= 1) return 1;
    return x * factorial(x-1);
}
var probability = factorial(5)

以函數(shù)形式調(diào)用的函數(shù)通常不適用this關(guān)鍵字

方法調(diào)用

方法調(diào)用和函數(shù)調(diào)用區(qū)別在于:調(diào)用上下文。
如果有一個(gè) 函數(shù) f 和 對(duì)象 o
給o定義一個(gè)m()的方法

o.m = f

給對(duì)象o定義方法m(),調(diào)用時(shí)就像這樣

o.m()

其中o就成為調(diào)用上下文,函數(shù)體可以使用關(guān)鍵字this引用該對(duì)象
一個(gè)具體的例子:

var calculator = {
    operand1:1;
    operand2:2;
    add:function(){
        this.result = this.operand1+this.operand2;
    }
};
calculator.add();//方法調(diào)用1+1的結(jié)果
calculate.result // => 2
this關(guān)鍵字

關(guān)鍵字this和變量不同,沒有作用域的限制,嵌套的函數(shù)不會(huì)從調(diào)用他的函數(shù)中繼承this
如果嵌套函數(shù)作為方法調(diào)用,this值指向調(diào)用它的對(duì)象。
如果嵌套函數(shù)作為函數(shù)調(diào)用,this指向全局對(duì)象或undefined
很多人誤認(rèn)為調(diào)用嵌套函數(shù)時(shí)this會(huì)指向調(diào)用外層函數(shù)的上下文。
如果你想這個(gè)外部函數(shù)的this值時(shí),需要將this值保存在一個(gè)變量里,這個(gè)變量和內(nèi)部函數(shù)都在同一作用域內(nèi)。

var o = {
    m:function(){ //對(duì)象中的m()方法
        var self = this;//保存this值
        console.log(this === o);//true,this就是這個(gè)對(duì)象o
        f(); //調(diào)用輔助函數(shù)f()
        
        function f(){
            console.log(this === o);//false,this的值是全局對(duì)象或undefined
            console.log(this === o);//true,self指外部函數(shù)的this值
        }
    }
};
構(gòu)造函數(shù)調(diào)用

構(gòu)造函數(shù)調(diào)用與函數(shù)調(diào)用、方法調(diào)用在實(shí)參處理,調(diào)用上下文和返回值方面都有不同。

構(gòu)造函數(shù)調(diào)用在圓括號(hào)里包含實(shí)參列表,則先計(jì)算實(shí)參表達(dá)式,這與函數(shù)調(diào)用和方法調(diào)用是一致的。
如果構(gòu)造函數(shù)沒有形參,JS構(gòu)造函數(shù)調(diào)用語法是可以省略()的

var o = new Object();
var o = new Object;//等價(jià)

構(gòu)造函數(shù)調(diào)用創(chuàng)建一個(gè)空對(duì)象,繼承自構(gòu)造函數(shù)prototype屬性,構(gòu)造函數(shù)試圖初始這個(gè)新創(chuàng)建的對(duì)象,作為其調(diào)用的上下文,因此,構(gòu)造函數(shù)可以使用this來引用這個(gè)新創(chuàng)建的對(duì)象。
構(gòu)造函數(shù)通常不使用return,當(dāng)執(zhí)行完函數(shù)體后,會(huì)顯示返回。

間接調(diào)用

JS函數(shù)也是對(duì)象,自然也有方法。
其中call(),apply()可以用來間接調(diào)用函數(shù)。這兩個(gè)方法都支持顯式調(diào)用所需this值

我們可以將call(),apply()看作某個(gè)對(duì)象的方法,通過調(diào)用方法的形式來簡介調(diào)用。
call和apply的第一個(gè)實(shí)參是要調(diào)用的函數(shù)的母對(duì)象,他是調(diào)用上下文,在函數(shù)體內(nèi)可以通過this來獲得引用。

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/78859.html

相關(guān)文章

  • 函數(shù)調(diào)用拾遺

    摘要:如果嵌套函數(shù)作為函數(shù)調(diào)用,指向全局對(duì)象或。構(gòu)造函數(shù)調(diào)用在圓括號(hào)里包含實(shí)參列表,則先計(jì)算實(shí)參表達(dá)式,這與函數(shù)調(diào)用和方法調(diào)用是一致的。構(gòu)造函數(shù)通常不使用,當(dāng)執(zhí)行完函數(shù)體后,會(huì)顯示返回。其中可以用來間接調(diào)用函數(shù)。 函數(shù)調(diào)用總結(jié) 通常構(gòu)成函數(shù)主題的JS代碼在定義之時(shí)是不會(huì)被執(zhí)行的,只有在調(diào)用函數(shù)是才會(huì)被執(zhí)行有4種方式可以調(diào)用JS函數(shù) 函數(shù)調(diào)用 //定義函數(shù) factorial function...

    kel 評(píng)論0 收藏0
  • 前端技能拾遺

    摘要:本文主要是對(duì)自己前端知識(shí)遺漏點(diǎn)的總結(jié)和歸納,希望對(duì)大家有用,會(huì)持續(xù)更新的解釋語言和編譯型語言解釋型語言與編譯型語言的區(qū)別翻譯時(shí)間的不同。命令會(huì)有變量聲明提前的效果。硬綁定參考不同是返回對(duì)應(yīng)函數(shù),便于稍后調(diào)用則是立即調(diào)用。 本文主要是對(duì)自己前端知識(shí)遺漏點(diǎn)的總結(jié)和歸納,希望對(duì)大家有用,會(huì)持續(xù)更新的~ 解釋語言和編譯型語言 解釋型語言與編譯型語言的區(qū)別翻譯時(shí)間的不同。編譯型語言在程序執(zhí)行之前...

    lyning 評(píng)論0 收藏0
  • 前端技能拾遺

    摘要:本文主要是對(duì)自己前端知識(shí)遺漏點(diǎn)的總結(jié)和歸納,希望對(duì)大家有用,會(huì)持續(xù)更新的解釋語言和編譯型語言解釋型語言與編譯型語言的區(qū)別翻譯時(shí)間的不同。命令會(huì)有變量聲明提前的效果。硬綁定參考不同是返回對(duì)應(yīng)函數(shù),便于稍后調(diào)用則是立即調(diào)用。 本文主要是對(duì)自己前端知識(shí)遺漏點(diǎn)的總結(jié)和歸納,希望對(duì)大家有用,會(huì)持續(xù)更新的~ 解釋語言和編譯型語言 解釋型語言與編譯型語言的區(qū)別翻譯時(shí)間的不同。編譯型語言在程序執(zhí)行之前...

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

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

0條評(píng)論

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