2013-10-07 128 views
0

我很感興趣,當我運行這個簡單的功能JavaScript函數方法調用了什麼?

$(window).resize(function() { 
    var that = $(this); 
    var widthValue = that.width(); 

    console.log(widthValue + 'px'); 
}); 

它的工作原理,當我開始我調整瀏覽器窗口。

但是,當我做到這一點

$(window).resize(function() { 
    var that = $(this); 
    var widthValue = that.width(); 

    console.log(widthValue + 'px'); 
}).resize(); 

它就像load();。最後我加了resize()

這是什麼叫?不知道我明白爲什麼以及如何運作。

+3

您只需將一個函數綁定到一個事件,然後觸發該事件。 –

+0

它不會像'load'那樣行爲,因爲它會立即觸發該功能 –

回答

5

該技術被稱爲鏈接

歸結爲一個返回this的函數,因此您可以通過依次鏈接方法調用來調用同一對象的另一個方法。

var foo = { 
    count: 0, 
    up: function() { this.count++; return this; }, 
    show: function() { alert(this.count); return this; } 
} 

foo.show().up().show().up().up().show(); 

在這個特例中,resize方法被重載。如果你給它一個函數參數,那麼它將把該函數綁定爲一個事件處理函數。如果你不帶參數地調用它,那麼它會觸發該事件。

0

在第二種情況下,您正在調用或觸發resize事件。

相關問題