デバッグ時に問題なく、obj コンストラクターを名前空間に保持したいと考えています。
現在、次のようなコードがあります。
var namespace = {};
namespace.myConstructor = function(){};
// ----------- debug in console
(new namespace.myConstructor()); // -> namespace.myConstructor {}
(new namespace.myConstructor()).constructor; // -> function (){}
コンストラクターが匿名であることは好きではありません。だから私は他の方法でそれを行うことができます:
(より良い、しかし醜い)
var namespace = {};
namespace.myConstructor = (function(){
function myConstructor(){};
return myConstructor;
})();
// ----------- debug in console
(new namespace.myConstructor()); // -> myConstructor {}
(new namespace.myConstructor()).constructor; // -> function myConstructor(){}
または(最も美しく最短の方法)
namespace.myConstructor = function myConstructor(){};
// ----------- debug in console
(new namespace.myConstructor()); // -> myConstructor {}
(new namespace.myConstructor()).constructor; // -> function myConstructor(){}
しかし、NFE (Named Function Expression) にはいくつかの問題があることをここで読みました。
どちらの方法が良いですか?どの方法が良い方法ですか?