node.js - 關於你不知道的JavaScript上一書介紹的行為委託
淡淡烟草味
淡淡烟草味 2017-07-03 11:42:23
0
3
899

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();
淡淡烟草味
淡淡烟草味

全部回覆(3)
扔个三星炸死你

如何看待《你不知道的js》中所倡導的程式風格?

我覺得賀老師的回答說的挺好的。

曾经蜡笔没有小新

個人覺得,強迫症選委託,沒強迫症選物件導向吧。作者應該是個眼裡融不進一點沙的強迫症,對class帶來的個別問題特別抗拒。選擇哪一種方式完全是個人的喜好,不管選哪一種,了解其本質還是基於原型鏈才是重點。個人以前做java的,輕度強迫症,所以還比較能接受class ^_^

伊谢尔伦

如何寫程式碼,當然是一件很個人的事情,與你的習慣和喜好有關。不過我認為是有一些基本原則可以作為參考的:

  1. 提高開發效率

  2. 降低出錯率
    3.易於閱讀與理解

滿足這三點的方式就是好的方式,違背這三點而強行堅持某種方式就是不值得提倡的。

選擇怎麼寫程式碼,不如都試試,然後以這三條原則對比一下,不必因為某個人怎麼說就非要怎麼樣嘛。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板