JavaScript 面向对象框架:dejavu

jopen 11年前

dejavu 在JavaScript原型继承的基础上提供了经典的继承形式,使得其他语言开发者可以轻松转向JavaScript。

dejavu 主要特性:

  • 类(具体的、抽象的、final类)
  • 接口
  • 混入(这样你可以使用某种形式的多重继承)
  • 私有成员和受保护成员
  • 静态成员
  • 常量
  • 函数上下文绑定
  • 方法签名检查
  • 扩展和借用vanilla类
  • 自定义instanceOf,支持接口
  • 两个版本:普通版本和AMD优化版本
  • 每个版本都有两种模式:严格模式(执行很多检查)和宽松模式(无检查)

示例代码:

var Person = Class.declare({      // although not mandatory, it's really useful to identify      // the class name, which simplifies debugging      $name: 'Person',        // this is a protected property, which is identified by      // the single underscore. two underscores denotes a      // private property, and no underscore stands for public      _name: null,      __pinCode: null,        // class constructor      initialize: function (name, pinCode) {          this._name = name;          this.__pinCode = pinCode;            // note that we're binding to the current instance in this case.          // also note that if this function is to be used only as a          // callback, you can use $bound(), which will be more efficient          setTimeout(this._logName.$bind(this), 1000);      },        // public method (follows the same visibility logic, in this case      // with no underscore)      getName: function () {          return this._name;      }        _logName: function () {          console.log(this._name);      }  });

项目主页:http://www.open-open.com/lib/view/home/1359286776304