我是javascript的新手,使用该语言做的更多,而不是使用jQuery通过按钮点击通过AJAX获取数据。
来自C#背景我没有看到在Javascript中使用命名空间的直接方法。我试图使用以下代码模仿它。我的问题涉及using(namespace);
方法,它将所有命名空间对象复制到窗口对象。我在搜索如何以模块化方式处理javascript时没有遇到过这样的编码,我想知道以下内容:1)这个模式有名字吗? 2)using(namespace);
的优缺点是什么?
console.clear();
var System = {
IO: {
OutletOption: {
Console: 1,
MessageBox: 2
},
Outlet: function Outlet(outletOption) {
var _self = this;
var _outletOption = outletOption;
//private
_self.log = function(txt) {
console.log(txt);
};
_self.messageBox = function(txt) {
alert(txt);
};
//public
_self.out = function(txt) {
switch (_outletOption) {
case System.IO.OutletOption.MessageBox:
_self.messageBox(txt);
break;
case System.IO.OutletOption.Console:
_self.log(txt);
break;
}
};
return {
out: _self.out
};
}
}
};
function using(namespace, scope) {
console.log(scope);
for (var key in namespace) {
scope[key] = namespace[key];
}
}
(function() {
function execute() {
//All your code goes here
using(System.IO, this);
var o = new this.Outlet(this.OutletOption.Console);
o.out("Some test text.");
};
return {
execute: execute
};
})().execute();
答案 0 :(得分:0)
JavaScript没有名称空间。如果您来自C#,您会发现使用TypeScript和Angular2 +更容易。 TypeScript是带有类型的JavaScript。