本帖最后由 Kreocn 于 2011-04-29 16:06:39 编辑

解决方案 »

  1.   

    例子: $(function () {
                var teop = new Object();//声明类对象
                var privateT = "55555555555"; //private 私有成员
                teop.PublicT = "7777777777"; //PublicT公有成员
                teop.PublicFunction = function () {//PublicT公有方法
                    privatefunction();
                }
                teop.PublicFunction2 = function () {//PublicT公有方法
                    privatefunction2();
                }
                function privatefunction() {//private 私有方法
                    alert(privateT);//访问私有成员
                }
                function privatefunction2() {//private 私有方法
                    alert(teop.PublicT);//访问公有成员
                }
                window["teop"] = teop;//把类赋值给window对象,作为window对象的属性        })
          
    1  首先声明类对象  var teop = new Object();    并把整个类放在 $(function () {})中,保证在文档正常加载后类已经存在。2   在把类对象赋值给window对象,作为window对象的属性window["teop"] = teop;    这样就可以在外部通过window对象的访问属性此类了3  在类内部声明私有成员直接使用var关键字,例如:var privateT = "55555555555"; //private 私有成员   声明共有成员则作为类的属性,不能使用var关键字,例如:teop.PublicT = "7777777777"; //PublicT公有成员    声明私有方法和声明私有成员基本类似,例如:    function privatefunction() {//private 私有方法
                    alert(privateT);//访问私有成员
                }    声明共有方法和声明公有成员基本类似,例如:   teop.PublicFunction = function () {//PublicT公有方法
                    privatefunction();
                }4 主要注意的是,对公有方法,共有属性的问,必须是完整的,不管是在类内部还是类外部。例如:  teop.PublicFunction(),必须是  teop.PublicFunction(),而不能是PublicFunction();teop.PublicT,必须是  teop.PublicT,而不能是PublicT;5测试脚本 function Test() {
                teop.PublicFunction();//测试 访问公有方法,可以正常使用
                teop.PublicFunction2();//访问公有方法,可以正常使用
                privatefunction();//访问私有方法,不能访问
                teop.privatefunction();//访问私有方法,不能访问            alert(teop.PublicT);//访问共有属性,可以正常使用            alert(teop.privateT);//访问私有属性,不能访问
                alert(privateT);//访问私有属性,不能访问
            }
      

  2.   

    function fa(x1) {
        this.xx = x1;
        var self = this;
        this.fa_b = function() {
            //.....
        }
        
        this.fa_a = function() {
            //.....        
            this.fa_a_b = function() {
                // 问题在这,我怎么访问到 xx和fa_b???
                // 外面的数倒是可以通过参数
                  self.xx;
                self.fa_b()
            };
        };
    }
      

  3.   

    来个更明显一点的function fa(x1) {
        this.xx = x1;
        
        this.fa_b = function() {
            //.....
        }
        
        this.fa_a = function() {
    alert(this.xx);
    fa_a_b();
        };

    var fa_a_b = function() {
    //getObj(this.parent);
    alert(this.xx); //这句有问题
    };
    }function tfa() {
    var f = new fa('xxx');
    f.fa_a();
    }
    怎么样访问xx??那句是有问题的