1
我創建了一個功能,我們命名空間,但如何擴展其功能秒參數作爲JavaScript函數或對象,並追加到
碼的空對象:
MY.property = function (str, obj, prevent) {
var ns = obj || MY,
k = str.split(".");
while (k.length > 1) {
if (!prevent && typeof ns[k[0]] === "undefined") {
ns[k[0]] = {};
}
if (ns[k[0]]) {
ns = ns[k.shift()];
} else {
return;
}
}
return [ns, [k[0]]];
};
MY.namespace = function (str) {
var ns = this.property(str),
k = str.split(".");
if (k[0] === "MY") {
k.shift();
}
if (ns && ns[0][ns[1]]) {
return;
} else {
ns[0][ns[1]] = {};
}
return true;
};
這隻適用於MY .namespace(「test」),var My.test = function(){};但是我怎麼能像這樣擴展它MY.namespace(「test」,function(){});和MY.namespace(「test」,{});
感謝您的任何幫助或建議。
爲什麼'如果(OBJ || typeof運算obj中的第一OBJ ===「功能」)'?不會'如果(obj)'做同樣的事情嗎?或者,如果這只是'if(typeof obj ===「function」)'確保obj是一個函數? – jfriend00
@jfriend,你是對的。我組合了一個if else語句,但沒有真正考慮它。 – Joe
@joey而不是傳遞另一個參數,如果我可以使用typeof參數[1] ===「Object」|| typeof argument [1] ===「函數,因爲我想傳遞第二個參數作爲對象或函數 – paul