2014-10-17 76 views
1

我已閱讀關於javascript函數hoisitng。但是,在這種情況下,我不明白如何運作匿名越來越懸掛JavaScript多重警示提示

var myObj = { 
    name: 'MyName', 
    dob: 10, 
    office: 'MyOffice', 
    myFun: function(){ 
     alert("Anonymous function"); 
    }, 
    showItem: function(){ 
     alert("Name : " + this.name + " office : " + this.office); 
    } 
}; 

alert(myObj.showItem()); 

如果我運行的代碼,二警報消息提示。一個顯示名稱,辦公室和其他未定義的。

回答

3

這是因爲兩個警報正在被調用。 第一個是在var中的showItem函數。 二是

alert(myObj.shwItem()); 

嘗試的包裝警示:

myObj.showItem(); 

在這種情況下,只有從您定義的變種內的警報會被調用。

+1

非常愚蠢的錯誤由我.... :(.... thnx指出:P :) – 2014-10-17 22:17:24

1

名稱和辦公室的警報來自showItem函數本身,alert(myObj.showItem());顯示未定義,因爲它提醒從showItem返回的內容,因爲它沒有任何內容,因此未定義。

+0

清晰明瞭的解釋...謝謝:) – 2014-10-17 22:19:05