2
我想在某些命名空間中保留obj consructors,並且在調試時沒有問題。在命名空間中定義obj構造函數的最佳方法javascript
現在我有這樣的代碼:
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(){}
或(最beautful和最短路徑)
namespace.myConstructor = function myConstructor(){};
// ----------- debug in console
(new namespace.myConstructor()); // -> myConstructor {}
(new namespace.myConstructor()).constructor; // -> function myConstructor(){}
但我讀here,有是NFE(命名函數表達式)的一些問題。
哪種方式更好?好的做法是哪種方式?
@我已經刪除了額外的問題。現在好嗎? – akaRem