是否可以在javascript函数变量中插入外部变量?

时间:2011-07-18 21:56:14

标签: javascript

我有两种javascript方法(importsnamespaceimports接受一个字符串参数(例如imports("com.x.y.MyClass"))并基于string创建一个相对路径并将其作为脚本(type = text/javascript)附加到head标记。使用imports我可以附加项目主页的任何javascript文件。

namespace可以使用2到3个参数(例如namespace("com.x.y", "MyClass", "google.maps.Marker")namespace("com.x.y", "MyClass" )

如果我们拨打var clssObj = new com.x.y.MyClass( param1, param2 ),则会搜索功能MyClass并在其存在时调用它。

imports("com.x.y.HelperClass1");
imports("com.x.y.HelperClass2");
imports("com.x.z.OtherClass");
namespace("com.x.y","MyClass","MyBaseClass").Class = function(){

var ...
..
.;
function privateFunc(){ 
   this.baseclassFunction(); \\ since Myclass is a prototype of MyBaseClass
   var otherClass = com.x.z.OtherClass();
}

this.publicFun = function(){
    privateFunc();
}; 
this.MyClass = function( param1, param2 ){
    this.base();// calling base class costructor
    var helperObj1 = com.x.y.HelperClass1();
    var helperObj2 = com.x.y.HelperClass2();
};  
};

是否可以将所有导入的类添加为MyClass私有变量?就像在Java中而不是使用com.x.y.HelperClass2一样,我们仅使用HelperClass2

1 个答案:

答案 0 :(得分:1)

免责声明:我不知道所有这些“进口”和“命名空间”业务是关于什么的。这些都不是JavaScript本机概念,因此它们必须由问题陈述中未命名的某些库提供。

话虽如此,您可以轻松地创建指向对象属性的局部变量,并在此过程中为自己创建简写符号。例如:

function privateFunc(){ 
   var OtherClass = com.x.z.OtherClass;
   this.baseclassFunction(); // since Myclass is a prototype of MyBaseClass
   var otherClass = OtherClass();
}

另一个选择(为了列出我能想到的所有内容)是使用with

function privateFunc(){ 
   this.baseclassFunction(); // since Myclass is a prototype of MyBaseClass
   with (com.x.z) {
      var otherClass = OtherClass();
   }
}

with通常被认为是JavaScript中的不良做法。我主要是在这里列出来让你意识到它,并鼓励你避免使用它。

希望这有帮助!