是這樣的有效?JavaScript - 爲命名空間分配局部變量以用於構造函數,不確定發生了什麼?
(function() {
"use strict";
var Smtg = window.some.namespace.Something,
Els = window.another.namespace.Else;
var smtg = null,
els = null;
smtg = new Smtg();
els = new Els();
smtg.doSomething(els);
}());
即使用將構造函數重命名爲較短的局部變量,然後從這個較短的局部變量實例化?
只有我得到像TypeError: Smtg is not a constructor
這樣的奇怪錯誤。當window.some.namespace.Something是;
window.some = {};
window.some.namespace = {};
window.some.namespace.Something = (function() {
"use strict";
this.doSomething = function (els) {
els.blah();
}
});
(想象window.another.namespace.Else類似於以上)
我曾以爲這都將是好的,不是嗎?
如果沒問題,可能的原因是什麼?我找不到可能出錯的地方。
[Alias function in javascript](http://stackoverflow.com/questions/13000020/alias-function-in-javascript) –
'some'和'some.namespace'都可能是之前的對象你可以爲'some.namespace.Something'指定一個值。 – Josh
上面是從一個更大的代碼片段中取得的僞代碼,所有相關的命名空間都存在於原始代碼中,爲了避免這種混淆,我將編輯這個問題。 – Neilos