suchen

Heim  >  Fragen und Antworten  >  Hauptteil

node.js – Verhaltensdelegation, die im vorherigen Buch über JavaScript eingeführt wurde, das Sie nicht kennen

https://github.com/getify/You...

Dieses Buch glaubt, dass der objektbezogene Stil besser ist als der objektorientierte (Prototyp-)Stil. Das Buch gibt auch an, dass es die ES6-Klassensyntax nicht unterstützt, aber es scheint, dass der objektorientierte Stil immer noch häufiger verwendet wird . Wie man wählt?

Objektorientierter Stil:

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();

Objektassoziationsstil:

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

Antworte allen(3)Ich werde antworten

  • 扔个三星炸死你

    扔个三星炸死你2017-07-03 11:44:23

    如何看待《你不知道的js》中倡导的编程风格?

    我觉得贺老师的回答说的挺好的。

    Antwort
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-03 11:44:23

    个人觉得,强迫症选委托,没强迫症选面向对象吧。作者应该是个眼里融不进一点沙的强迫症,对class带来的个别问题特别抵触。选择哪种方式完全是个人的喜好,不管选哪种,了解其本质还是基于原型链才是重点。个人以前做java的,轻度强迫症,所以还比较能接受class ^_^

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-07-03 11:44:23

    如何写代码,当然是一件很个人的事情,与你的习惯和喜好有关。不过我认为是有一些基本原则作为参考的:

    1. 提高开发效率

    2. 降低出错率
      3.易于阅读和理解

    满足这三点的方式就是好的方式,违背这三点而强行坚持某种方式就是不值得提倡的。

    选择怎么写代码,不如都试试,然后按这三条原则对比一下,不必因为某个人怎么说就非要怎么样嘛。

    Antwort
    0
  • StornierenAntwort