我一直在阅读大量关于with
在 JavaScript 中使用关键字的帖子、问题和文章。有些文章警告不要使用 Javascript 的with
关键字,所以我想知道我的使用是否合适。
我的大部分编程经验都是在 C# 和 Java 中,所以在创建相关对象时为它们命名对我来说很有意义。
我正在尝试的方法是首先将根命名空间创建为可全局访问的对象。对象成员是第一级命名空间,它们也是对象。
何时将对象添加到命名空间时,我使用 Javascriptwith
关键字使参数的成员在 with 的范围内可本地访问。在命名空间中移动时,嵌套with
s 并将参数设置为要输入的命名空间。
这是一个例子:
var Namespace = {
SubNamespace1: {},
SubNamespace2: {}
}
with (Namespace) {
with (SubNamespace1) {
SubNamespace1.FirstClass = {
foo: function() {
SecondClass.bar();
},
bar: function() {
SecondClass.foo();
}
},
SubNamespace1.SecondClass = {
foo: function() {
FirstClass.bar();
},
bar: function() {
FirstClass.foo();
}
}
}
with (SubNamespace2) {
SubNamespace2.FirstClass = {
foo: function() {
SecondClass.bar();
},
bar: function() {
SecondClass.foo();
}
},
SubNamespace2.SecondClass = {
foo: function() {
FirstClass.bar();
},
bar: function() {
FirstClass.foo();
}
}
}
}