2014-01-23 45 views
3

我用不同的方式來聲明js對象,尤其是在閱讀了knockout.js文檔之後。他們似乎混合了所有可能的方式。這四種聲明對象的方式有什麼區別?聲明javascript對象的不同方式 - 區別?

var object = new Object(); 
name.field = bla; 
name.method = function() { bla }; 

var object = { 
field : "bla", 
method : function() { bla }; 
} 

- >我猜這些是相同的,只是不同的符號。但在第二種情況下,你將如何傳遞參數?或者根本不可能?

而在兩個bwlo中:將它存儲在一個變量中而不是將它存儲在一個變量中(除了將該對象傳遞給函數的方式)之間的區別是什麼?

function object() { 
this.field = "bla"; 
this.method = function() { bla }; 
} 

otherfunction(new Object()); 

var myobject = function name() { 
this.field = "bla"; 
this.method = function() { bla }; 
} 

otherfunction(new myobject()); 
otherfunction(myobjet); 

編輯:抱歉再次提問,沒有看到建議的主題中的另一個。

+1

你是什麼意思的「你將如何傳遞參數」? – basilikum

回答

1

在第一個使用的是新的語句:

新的運營商創建一個用戶定義的對象類型的實例或具有構造函數的內置對象類型之一。

所以,你可以做任何函數的對象定義

var x = function() {}; 
new x(); 

的第二件事是一個對象字面:

文字的對象是零個或多個對的列表屬性名稱和對象的關聯值,用大括號({})括起來。

它總是Object函數的一個實例。你爲什麼想在這裏傳遞參數?您正在定義顯式對象,不需要在這裏傳遞參數。

+0

感謝您的回覆!我現在得到關於傳遞參數的部分。 – user2791739

相關問題