function objFactory(className)
{
var obj;
switch (className)
{
case "Class1":
obj = new Class1();
break;
case "Class2":
obj = new Class2();
break;}return obj;
}

解决方案 »

  1.   

    这个工厂里面加上这个
    obj.testPro = testPro;
      

  2.   

    Class1 ,Class2 还不存在,要动态生成的。其实就是想创建一个如下的字符串" function Myobj(){
      this.MyName="ABCD";
      this.testPro=testPro;
    }function testPro(){
     alert(888888888);
    }"
    然后将这个字符串动态加载,然后在后面加载的脚本就可以使用 new MyObj
      

  3.   

    谢谢楼上回复,我找到了办法了,用evel 可以动态加载。
      

  4.   

    晕,好象不行。function _CreateFormObject(){
    var aClassName="JMyObj";
    var str="function "+aClassName+"() { this.testPro=_testpro;}";
    eval (str);

    var obj=new JMyObj();
    obj.testPro();
    //这样创建是正常的,但是在别的方法中创建 JMyObj 就不可以了。为什么??????}
      

  5.   

    eval 加载的脚本只在小范围内有做用.我是想要一个可以动态加载脚本字符串的方法.有一些动态加载脚本文件的方法,用的话还要读写文件,不太好.
      

  6.   

    你看这样行不行
    var BaseClass = new function()
    {}function _testPro()
    {
    alert("aaa")
    }function createClass(className)
    {
    eval ("BaseClass." + className + " = function (){this.testPro = _testPro;}");
    }function test()
    {
    createClass("a");
    var obj = new BaseClass.a();
    obj.testPro();}
      

  7.   

    function _testPro()
    {
    alert("aaa")
    }function createClass(className)
    {
    eval (className + " = function (){this.testPro = _testPro;}");
    }function test()
    {
    createClass("a");
    var obj = new a();
    obj.testPro();}恩,实际这样就可以了
      

  8.   

    我还有一个贴子,看来是没人能回复了http://community.csdn.net/Expert/topic/5195/5195097.xml?temp=.574917你回复一下我就结帐贴了。