我有這樣的代碼,如何添加命名空間來揭示原型模式
var MyNamespace = MyNamespace || {};
MyNamespace.Calculator = function (eq) {
//state goes here
this.eqCtl = document.getElementById(eq);
};
MyNamespace.Calculator.prototype = function() {
//private members
var add = function (x, y) {
this.eqCtl.innerHTML = x + y;
},
subtract = function (x, y) {
this.eqCtl.innerHTML = x - y;
};
//public members
return {
add: add,
subtract: subtract
};
}();
Var calc = new MyNamespace.Calculator('eqCtl');
calc.add(2,2);
問題
爲什麼會出現異常增加「了myNameSpace」來了之後?它可以工作,如果我刪除它...
建議不要使用「新」關鍵字創建對象道格拉斯克羅克福德然後我該如何克服這種解決方案。
小提琴:https://jsfiddle.net/bpo50qjg/
* 「雅虎duglas」 *正確叫做道格拉斯·克羅克福德。是的,克羅克福德有一個與'新'有關的問題。不,這並不意味着你不應該使用它。這意味着* Crockford認爲*你不應該使用它。重要的區別。閱讀他的反對意見,考慮爭論,並作出自己的決定。 –
@ T.J.Crowder謝謝,你說得對,但我需要時間才能明白爲什麼道格拉斯會這麼說,我將在未來的某個時間做我的研究 – Mathematics
爲什麼反對投票?是因爲模式還是我的錯誤? – Mathematics