導讀:經常看到一些JavaScript的代碼髒亂得無法理解,到處都是屬性和方法,或者一個迴圈套著一個迴圈。但如果使用物件導向就能很好的理清代碼,並方便理解和修改代碼。如果你不希望自己的代碼只有上帝理解的話,就請盡量考慮使用物件導向的模式。
譯文本文:
到處都是屬性、方法,代碼極其難懂,天哪,我的程式員,你究竟在做什嗎?仔細看看這篇指南,讓我們一起寫出優雅的物件導向的JavaScript代碼吧!
作為一個開發人員,能否寫出優雅的代碼對於你的職業生涯至關重要。隨著像Node.js這類技術的發展,你甚至可以在伺服器端使用JavaScript了。同樣的,你也可以使用JavaScript來控制MongoDB的持續資料存放區。
文本標記
文本標記只是JavaScript裡建立對象的一種方法,當然這裡肯定不止這一種,但它是你在只打算建立一個對象執行個體時的首選方法。
var bill = {};
上面的代碼並不實用,它只是一個Null 物件。接下來我們動態地向這個對象中添加一些屬性和方法。
bill.name = “Bill E Goat”;
bill.sound = function() {
console.log( 'bahhh!' );
};
這裡添加了屬性name,並且給它分配了值“Bill E Goat”。我們並不需要先建立一個Null 物件,而可以把所有代碼直接寫在一對括弧裡。
var bill = {
name: “Bill E Goat”,
sound: function() {
console.log( 'bahhh!' );
}
};
是不是很美觀?訪問它的屬性和方法就像呼吸一樣簡單、自然。
bill.name; // “Bill E Goat”
bill.sound(); // “bahhh”
如果屬性名稱不是一個合法的標誌符,我們還可以這樣訪問它:
bill['name']; // “Bill E Goat”
注意:我在調用方法時在其後添加了圓括弧。現在,我們再重寫一下當前的sound方法,並添加一個參數。
bill.sound = function(noise) {
console.log(noise);
};
bill.sound(“brrr!”); // “brrr!” He's cold :)
很好,我們已經傳入參數了,並且在方法定義中訪問了它。接下來,向對象中增加一個新方法來訪問name屬性。
bill.sayName = function() {
console.log( “Hello “ + this.name );
};
bill.sayName(); // “Hello Bill E Goat”
我們可以使用this.propertyName(在本例中即this.name)在方法內訪問屬性。
bill.sayName; // function
怎麼回事?訪問sayName方法返回了一個方法定義。現在讓我們再深入些。