[英]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.