簡體   English   中英

從javascript對象調用函數

[英]Calling a function from a javascript object

我一直在使用/從這樣的對象中調用函數:

var object = { 
    fn: function(){ 
        alert('i can see it!'); 
    }
}; 
object.fn(); // it works

但我不知道如何從僅{}對象調用函數。

{
    fn: function() {
        alert('i can\'t see it');
    }
}

fn(); // wont work ?

我想知道為什么這不起作用? 有辦法使它起作用嗎?

您的第二個示例是無效的語法。 {}被解釋為帶有標簽和無效函數的語句,因為它沒有名稱。

如果您想這樣內聯,則需要更多類似以下內容:

({
    fn: function() {
        alert('now i can see it');
    }
}).fn();

現在,您正在創建對象,因為{}不再是塊語句,而是對象文字語法。 然后,您立即訪問定義的fn屬性。

當然,這沒有什么意義,但是它更接近您的工作。

fn在塊內,而不在對象內。 僅在塊內傳遞名稱值,即{}不起作用。 或至少給標簽加上一些標簽。

這樣稱呼它: object.fn(); 正如@BlueSkies所說,第二個示例將無效,因為它的語法無效。 您無法在JavaScript中做到這一點。 如果像大衛在評論中說的那樣命名該對象,則它將起作用。 您不能從匿名對象中調用函數。

這是一個名為e的對象的示例: http : //jsfiddle.net/dhF5k/

這是定義“獨立”功能(沒有包裝對象)的正確語法:

var fn = function () { ... };
function fn() { ... };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM