2015-12-21 36 views
-2

我不明白爲什麼在JavaScript中一個類被稱爲一個類,當它只是定義一個函數,以便當它運行時它將它變成一個對象。 以下示例。什麼是Javascript中的類

var Person = function (firstName) { 
    this.firstName = firstName; 
    console.log('Person instantiated'); 
}; 


var person1 = new Person('Alice'); 
var person2 = new Person('Bob'); 

// Show the firstName properties of the objects 
console.log('person1 is ' + person1.firstName); // logs "person1 is Alice" 
console.log('person2 is ' + person2.firstName); // logs "person2 is Bob" 

那麼,它就像一個對象的藍圖/模板?

編輯。好吧,我明白我寫的不是現在的課程,在這個鏈接https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript它引用了它是一個類很多次。

編輯這個問題已經回答,謝謝你的幫助人。

+2

這不是一個類,這就是所謂的「構造函數」。上面的模型被稱爲「僞古典繼承」,因爲它模仿了用類創建語言的方式。 而不是,它們不是一個對象的藍圖/模板,因爲您可以在任何給定時間將字段/方法添加到JavaScript中的對象。 – saadq

+0

感謝爲hellp,不知道 –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript - 這整個頁面指的是我在說什麼作爲類 –

回答

1

JavaScript類最近被引入ECMAScript 6。它們是前面prototypal inheritance模型的語法糖。

這允許用於創建對象和處理繼承的更簡單和更乾淨的語法。

一種聲明類的方法是使用class關鍵字,後跟您所創建類的名稱。這是一個簡單的例子。

class Polygon { 
    constructor(height, width) { 
    this.height = height; 
    this.width = width; 
    } 
} 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes

要注意,類不Internet ExplorerOpera支持是很重要的。

0

類是技術上只是一個引入的功能中的EcmaScript 6.它們需要或者是類聲明類表達之前到類的任何用途的形式。但是,您的示例中使用的語法不是這些東西中的任何一種。課堂使用的例子可以在Mozilla Developer Network找到。

+0

我從Mozilla網站得到了這個。 「類 JavaScript是一種基於原型的語言,不包含類語句,例如在C++或Java中找到的語句,這對於習慣於具有類語句的語言的程序員來說有時會引起混淆,而JavaScript會使用函數作爲類的構造函數。定義一個類就像定義一個函數一樣簡單。在下面的例子中,我們定義了一個名爲Person的新類,並帶有一個空的構造函數。 –