2014-03-04 129 views
0

請考慮以下內容:瞭解JavaScript對象創建和原型

以下代碼段是否等同?

var foo = Class.create(); 
foo.prototype = { 
    initialize : function() {}; 
    sayHello : function() {}; 
} 

var foo = Class.create(); 
    foo.prototype = { 
     initialize : function() {}; 
    } 
    foo.prototype.sayHello : function() {}; 

其次,哪一個更喜歡其他其他? when and why

+0

他們都是錯的 – Sam

+0

好吧最新怎麼樣? – JavaDeveloper

+0

也許下面的答案可以幫助你理解什麼原型做什麼,以及構造函數或初始化器是做什麼的.http://stackoverflow.com/a/16063711/1641941 – HMR

回答

1

他們都錯了,他們應該是

var foo = new Object(); 
foo.prototype = { 
    initialize : function() {}, 
    sayHello : function() {} 
} 

var foo = new Object(); 
foo.prototype = { 
    initialize : function() {} 
} 
foo.prototype.sayHello = function() {}; 

,是的,他們是相同的

我更喜歡第一種方式進行初始化,因爲更清晰

+0

class.create()怎麼了? – JavaDeveloper

+0

@JavaDeveloper類不是一個JavaScript對象,可能來自任何框架 – Sam

+0

var Person = Class.create(); Person.prototype = { initialize:function(name){ this.name = name; }, say:function(message){ return this.name +':'+ message; } }; – JavaDeveloper