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

資訊專欄INFORMATION COLUMN

函數調用拾遺

kel / 1308人閱讀

摘要:如果嵌套函數作為函數調用,指向全局對象或。構造函數調用在圓括號里包含實參列表,則先計算實參表達式,這與函數調用和方法調用是一致的。構造函數通常不使用,當執行完函數體后,會顯示返回。其中可以用來間接調用函數。

函數調用總結

通常構成函數主題的JS代碼在定義之時是不會被執行的,只有在調用函數是才會被執行
有4種方式可以調用JS函數

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

以函數形式調用的函數通常不適用this關鍵字

方法調用

方法調用和函數調用區別在于:調用上下文。
如果有一個 函數 f 和 對象 o
給o定義一個m()的方法

o.m = f

給對象o定義方法m(),調用時就像這樣

o.m()

其中o就成為調用上下文,函數體可以使用關鍵字this引用該對象
一個具體的例子:

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

關鍵字this和變量不同,沒有作用域的限制,嵌套的函數不會從調用他的函數中繼承this
如果嵌套函數作為方法調用,this值指向調用它的對象。
如果嵌套函數作為函數調用,this指向全局對象或undefined
很多人誤認為調用嵌套函數時this會指向調用外層函數的上下文。
如果你想這個外部函數的this值時,需要將this值保存在一個變量里,這個變量和內部函數都在同一作用域內。

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

構造函數調用與函數調用、方法調用在實參處理,調用上下文和返回值方面都有不同。

構造函數調用在圓括號里包含實參列表,則先計算實參表達式,這與函數調用和方法調用是一致的。
如果構造函數沒有形參,JS構造函數調用語法是可以省略()的

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

構造函數調用創建一個空對象,繼承自構造函數prototype屬性,構造函數試圖初始這個新創建的對象,作為其調用的上下文,因此,構造函數可以使用this來引用這個新創建的對象。
構造函數通常不使用return,當執行完函數體后,會顯示返回。

間接調用

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

var args = [girl1, girl2];
var animal = new Animal();
Man.prototype.fuck.apply(animal, args);

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78855.html

相關文章

  • 函數調用拾遺

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

    elisa.yang 評論0 收藏0
  • 前端技能拾遺

    摘要:本文主要是對自己前端知識遺漏點的總結和歸納,希望對大家有用,會持續更新的解釋語言和編譯型語言解釋型語言與編譯型語言的區別翻譯時間的不同。命令會有變量聲明提前的效果。硬綁定參考不同是返回對應函數,便于稍后調用則是立即調用。 本文主要是對自己前端知識遺漏點的總結和歸納,希望對大家有用,會持續更新的~ 解釋語言和編譯型語言 解釋型語言與編譯型語言的區別翻譯時間的不同。編譯型語言在程序執行之前...

    lyning 評論0 收藏0
  • 前端技能拾遺

    摘要:本文主要是對自己前端知識遺漏點的總結和歸納,希望對大家有用,會持續更新的解釋語言和編譯型語言解釋型語言與編譯型語言的區別翻譯時間的不同。命令會有變量聲明提前的效果。硬綁定參考不同是返回對應函數,便于稍后調用則是立即調用。 本文主要是對自己前端知識遺漏點的總結和歸納,希望對大家有用,會持續更新的~ 解釋語言和編譯型語言 解釋型語言與編譯型語言的區別翻譯時間的不同。編譯型語言在程序執行之前...

    Vultr 評論0 收藏0

發表評論

0條評論

kel

|高級講師

TA的文章

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