コンストラクター関数をインスタンス化して、独自の _proto_ プロパティを持ち、コンストラクター関数にプロパティ 'prototype' を与える JavaScript で新しいオブジェクトを作成できることを理解するようになりました。
function MyController() {
var controllerName = 'initialcontroller';
function init() {
console.log(controllerName);
}
this.init = init;
}
ここで、init は次のように呼び出すことができます。
var mycontroller = new MyController();
mycontroller.init();
MyController.prototype によって提供されるすべてのプロトタイプ プロパティを使用するつもりがない場合、インスタンス化を 1 回だけ実行し、二度と実行しないと仮定すると、これはやり過ぎではありませんか?
質問: 代わりに、公開モジュール パターンを使用してこのようにコーディングすることはできませんか?
var myController = function() {
var controllerName = 'initialcontroller';
function init() {
console.log(controllerName);
}
return {
init : init
}
}();
ここで、init は次のように呼び出すことができます。
myController.init();
この場合、存在しない myController 内のプロパティにアクセスしようとすると、javascript エンジンはそのプロパティがプロトタイプ チェーンのどこかに存在するかどうかを調べようとしないため、時間を節約できます。
または、私が見落としている関数をインスタンス化することの他の利点はありますか?