2010-10-08 67 views
2

我正在學習如何在JavaScript中創建對象。當我做到這一點...JavaScript如何做OOP?

var Person = { 
    name: "John Doe", 
    sayHi: function() { 
    alert("Hi"); 
    } 
}; 

我知道,我創建一個Person類的一個實例,但我不知道如何(或者如果)我可以重複使用類來創建另一個實例。 JavaScript具有哪些OOP功能?它是否具有與其他語言(如Java或Ruby)相同的面向對象功能?有人可以解釋JavaScript如何做OOP嗎?

+1

@orolo,你應該改變你的評論到一個答案,這是很好的恕我直言。 – 2010-10-08 20:45:52

+2

其實,你身上的'Person'就是一個單一的對象,而不是一個類。類通常被定義爲函數(然後得到新的)。嘗試檢查出http://mckoss.com/jscript/object.htm關於類繼承的解釋等。 – Cameron 2010-10-08 20:47:21

+0

@Cameron:+1。我打算在答案中提出該鏈接。我喜歡回到那篇關於Object行爲的文章。 – vol7ron 2010-10-08 20:56:44

回答

3

在您的示例中,您並未創建Person類的實例。您正在創建一個名爲'Person'的變量,其中包含一個匿名對象。

要創建一個類類型的人,你會怎麼做:

function Person() { 
    this.name = "John Doe", 
    this.sayHi = function() { 
    alert("Hi"); 
    } 
} 

var somebody = new Person(); 

否則,我認爲你的問題太廣泛和複雜。網上有很多javascript文章和教程(和書店裏的書籍)。去研究他們,如果你不明白具體的東西,然後張貼在這裏。

2

克羅克福德有一些很好的解釋here

+0

+1,很好的參考 – 2010-10-08 20:51:46

3

JavaScript不使用類。它使用原型。有多種創建新對象的方法。

你可以這樣做:

var john = Object.create(Person); 

或者你可以使用關鍵字new

function Person() = { 
    this.name = "John Doe", 
    this.sayHi = function() { 
    alert("Hi"); 
    } 
}; 

var john = new Person(); 

欲瞭解更多信息,請閱讀: