aralejs / class

Class Utility
aralejs.org/class
102 stars 88 forks source link

Class 1.2.0 #13

Closed popomore closed 10 years ago

popomore commented 10 years ago

class@1.2.0 和 class@2.0.0 会调整一些接口,class@2.0.0 还会去除兼容性代码。

不要 merge

现有 API

创建

创建一个 Class, 常用

var Base = Class.create({
  initialize: function () {}
});

创建一个 Class,继承一个原生的 function

function Base() {}
Base.prototype.initialize = function() {}
Class.create(Base, {
  initialize: function () {}
});

继承

通过 extend 来继承, 常用

var Base = Class.create({
  initialize: function () {}
});
Base.extend({
  initialize: function () {}
});

通过 create 来继承

var Base = Class.create({
  initialize: function () {}
});
var Widget = Class.create(Base, {
  initialize: function () {}
});

通过 Extends 来继承

var Base = Class.create({
  initialize: function () {}
});
var Widget = Class.create({
  Extends: Base,
  initialize: function () {}
});

混入

使用 Implements 混入, 常用

var Base = Class.create({
  Implements: Mixins,
  initialize: function () {}
});

使用 implement 混入

var Base = Class.create({
  initialize: function () {}
});
Base.implement(Mixins);

其他功能

转换

function Base() {}
Base.prototype.initialize = function() {}
Class(Base);

静态方法 Statics,不写示例了

整理 API

class 主要有创建,继承和混入的功能,但从上面 api 来看每种都有两种以上的可选项,但有些并不常用。

Implements 虽然常用,但是为了 API 保持一致,我觉得方法调用优于属性。

格式

popomore commented 10 years ago

refer #7

antife-yinyue commented 10 years ago

为什么一定要「加分号 !!!」:satisfied:

popomore commented 10 years ago

@jsw0528 没有被玉伯的鸡汤传染,而且深恶痛绝。

antife-yinyue commented 10 years ago

玉伯发什么鸡汤了?我向来不加分号啊,不过看到老代码有的话也会加上 :laughing:

lepture commented 10 years ago

小高現在的代碼風格應該和我的差不多吧。

popomore commented 10 years ago

貌似你没走我就是这个风格了