Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

pandora-class

pandorajs31.2.0

提供简单的 OO 实现

pandora, class

readme

pandora-class


提供简单的 OO 实现

安装

$ spm install pandora-class --save

使用说明

创建类

var Class = require('pandora-class');
var Person = Class.create({
  initialize: function (name, age) {
    this.name = name;
    this.age = age;
  }
});

对类扩展(继承)

var Student = Person.extend({
  //initialize是内置的初始化方法,实例化时自动执行
  initialize: function (name, age, school) {
    Student.superclass.initialize.apply(this, arguments);
    //superclass是Student的父类,也就是Person,这句是调用父类的初始化方法。
    this.school = school;
  }
});

var Student = Class.create(Person, {
 initialize: function (name, age, school) {
    Student.superclass.initialize.apply(this, arguments);
    this.school = school;
  }
});

对实例扩展

var person = new Person('xiaoming', 18);
person.extend({
  showName: function () {
    console.log(this.name);
  }
});
person.showName(); //xiaoming

混入

var proto1 = {
    height: 175
  },
  proto2 = {
    getHeight: function() {
      return this.height;
    }
  };

然后通过以下方式把属性或方法混入到类里。

var Student = Person.extend({
  mixins: [proto1, proto2]
});

var Student = Class.create(Person,{
  mixins: [proto1, proto2]
});

混入后,Student就拥有height属性和getHeight()方法。

changelog

History


1.1.0

IMPROVED 升级到 spm@3.x 规范

1.0.0

new pandora-class第一个版本.