9

JavaScriptを使用した実際のオブジェクト指向プログラミングに取り掛かっていますが、既存のオブジェクトのプロトタイプを拡張する2つの異なる方法に遭遇しました。

方法1:

Something.prototype.someFunc = function() {
    // To something usefull
}

方法2(underscore.jsを使用):

_.extend(Something.prototype, {
    someFunc: function() {
        // Do the same but differently
    }
}

これら2つのアプローチの違いは何ですか?どちらが「より良い」と見なされますか?私には、最初のメソッドは単純な古いjavascriptを使用しているため、より優れているように見えます。2番目のメソッドは他の誰かの実装です。しかし一方で、underscore.js開発者は確かに_.extend()メソッドを無料で追加しませんでしたか?

4

1 に答える 1

6

それらは機能的に同等です。単一のメソッドの場合、メソッド1の方が読みやすいと思いますが、同じプロトタイプに複数のメソッドを追加した場合、メソッド2の方が読みやすい可能性があります(もちろん主観的です)。

RE:underscore.js開発者は確かに_.extend()メソッドを無料で追加しませんでした:

_.extendには、デフォルトオプションなど、他の用途があります。

function (options) {
  options = _.extend({ height: 80, width: 20 }, options);
  ...
}
于 2013-03-18T10:34:30.463 に答える