ここにある短いコードでこの質問を紹介しましょう。
function SomeObject() {
// Personaly I call this part initialization...
this.anything = "anything";
// ... but here somebody call function init...
this.init();
}
// ... which is declared there...
SomeObject.prototype.init = function () {
// ... and contains more initialization.
}
ここで質問があります: この init 関数の実装にはどのような利点がありますか?
私が見る唯一の利点は、init
後でインスタンスで関数を使用し、そのプロパティやその他のものの一部を再初期化できることです。しかし、私が持っているコードでは、それを行う意味はありません。ましてや、そんなことをしたら、いろいろ壊れてしまう。それ以来、この実装以外に違いがあるかどうかはわかりません:
function SomeObject() {
init.call(this);
}
function init() {
}
さらに、コンストラクターをより多くの部分に分割する理由がわかりません。だから、私は何か重要な恩恵や自然さを本当に逃さなければならなかったと思います.