[英]How to create OOP Class in Javascript
我不願使用任何教程,因為我知道這些教程最終會變成什么樣,並教給您錯誤的處理方法。 我想用Javascript設置一個類,這樣我就可以
var vehicle = new Vehicle(el);
var model = vehicle->getModel();
這些功能將讀取HTML並獲取和管理頁面上的元素。 我目前正在執行類似...的設置
var model = function () {
return {
getName: function () {
},
getVehicleCount: function () {
},
incrementCount: function (id) {
console.log(x);
}
}
}();
我仍在學習Java語言中的類...我希望能夠將所有方法將要使用的元素的節點傳遞給該類,但是我不確定我是否做對了...
JavaScript中沒有類,而是JavaScript中的所有對象都是對象。
要創建一個新對象,您定義一個在其中使用this
關鍵字的函數(“構造函數”),然后使用new
運算符對其進行調用:
function Foo (id) { // By convention, constructor functions start with a capital letter
this.id = id;
}
var foo1 = new Foo(1);
var foo2 = new Foo(2);
但是,這些對象沒有方法。 要添加方法,您需要在其構造函數上定義一個原型對象:
Foo.prototype = {
getId: function () {
return this.id;
}
}
這個新的getId
函數將對所有Foo
對象都可用。 但是,如上所述,JavaScript中沒有類,因此將使用其他構造來產生不同的結果。
我強烈推薦道格拉斯·克羅克福德(Douglas Crockford)的視頻,他在其中解釋了很多javascript OO性質。 可以在這里找到講座:
http://developer.yahoo.com/yui/theater/
Douglas Crockford — JavaScript編程語言
Douglas Crockford —高級JavaScript
這些將使您對javascript的結構有基本的了解,並應有助於從經典編程向函數式編程的過渡。
盡管JavaScript中沒有類,但是您可以創建構造函數。 構造函數通過將方法綁定到對象原型來工作。 有幾種方法可以做到這一點,每種方法都有優點和缺點。 我個人更喜歡最直接的方法,該方法是將方法附加到“ this”上:
var Constructor = function() {
//object properties can be declared directly
this.property = "value";
//to add a method simply use dot notation to assign an anonymous function to an object
//property
this.method = function () {
//some code
}
//you can even add private functions here. This function will only be visible to this object methods
function private() {
//some code
}
//use return this at the end to allow chaining like in var object = new Constructor().method();
return this;
}
JavaScript中沒有像類這樣的東西。 JavaScript繼承可用於原型。 您可以看一下base2 ,它模仿了JavaScript中類似類的行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.