https://github.com/getify/You...
這本書認為物件關聯風格比物件導向(原型)風格更好,書中也表示不支援ES6的class語法,但平常好像還是用物件導向風格較多,該如何選擇呢?
物件導向風格:
function Foo(who) {
this.me = who;
}
Foo.prototype.identify = function() {
return "I am " + this.me;
};
function Bar(who) {
Foo.call( this, who );
}
Bar.prototype = Object.create( Foo.prototype );
Bar.prototype.speak = function() {
alert( "Hello, " + this.identify() + "." );
};
var b1 = new Bar( "b1" );
var b2 = new Bar( "b2" );
b1.speak();
b2.speak();
物件關聯風格:
var Foo = {
init: function(who) {
this.me = who;
},
identify: function() {
return "I am " + this.me;
}
};
var Bar = Object.create( Foo );
Bar.speak = function() {
alert( "Hello, " + this.identify() + "." );
};
var b1 = Object.create( Bar );
b1.init( "b1" );
var b2 = Object.create( Bar );
b2.init( "b2" );
b1.speak();
b2.speak();
如何看待《你不知道的js》中所倡導的程式風格?
我覺得賀老師的回答說的挺好的。
個人覺得,強迫症選委託,沒強迫症選物件導向吧。作者應該是個眼裡融不進一點沙的強迫症,對class帶來的個別問題特別抗拒。選擇哪一種方式完全是個人的喜好,不管選哪一種,了解其本質還是基於原型鏈才是重點。個人以前做java的,輕度強迫症,所以還比較能接受class ^_^
如何寫程式碼,當然是一件很個人的事情,與你的習慣和喜好有關。不過我認為是有一些基本原則可以作為參考的:
提高開發效率
降低出錯率
3.易於閱讀與理解
滿足這三點的方式就是好的方式,違背這三點而強行堅持某種方式就是不值得提倡的。
選擇怎麼寫程式碼,不如都試試,然後以這三條原則對比一下,不必因為某個人怎麼說就非要怎麼樣嘛。