Javascript 面向对象的Class, 怎么写最好.

    Javascript可以写成函数式的, 也可以写成面向对象的. 如果考虑易读性, 最好还是采用面向对象的风格. 如果是一个技术平台或框架,可以考虑采用函数式的写法.

    对于面向对象的写法, 从最基础的类开始, javascript就有很多种方法写一个类, 那到底哪种是最佳的呢? 和同事讨论, 认为以下的写法是最OK的.

 

    function ClassA()
    {
         var _this = this;    //这是为了给ClassA的私有类使用本实例
         var _field1;           //private的成员变量 
         var privateMethod1 = function()
         {
            //private里调用private,直接用。
             _field1 = 1; 
             privateMethod2(); 
             //private里调用public,用_this.xxx。
            _this.publicMethod1(); 
         }

          this.publicMethod1 = function()
         {
             //public里调用private,直接用。
              _field1 = 1; 
              privateMethod1();

              //public里调用public,用this.xxx。 
              this.publicMethod2(); 
         }

         ClassA.prototype.staticMethod1 = function()
         {
                //静态方法 
         }
   }

   function user()
  {
       var a = new ClassA();

       //public的调用,private的外面就看不到了。
       a.publicMethod1();

       //静态方法,必须加.prototype,没办法, JS能这样已经很不错了. 
       //而且通过实例a.staticMethod1()也能调用。 
       A.prototype.staticMethod1();
  }

 

   以上是类的一种写法, 它的好处是可以区分私有/公用 方法, 也有人使用Prototype来写公共方法(里面用this调用实例变量). 但这里将Prototype定位为静态方法的写法, 更加合理和更全面.

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值