Coffeescript,Classes& Zepto.js

时间:2010-11-26 21:04:21

标签: javascript coffeescript

zepto.js是否有一个添加类和扩展子类的方法?

一个相关的问题是:Coffeescript实际上是否能够为您提供编写类并扩展它们的能力,而不需要像具有特定方法的原型这样的库?

1 个答案:

答案 0 :(得分:3)

Zepto.js源代码显示它有一个可能有效的$.extend方法,但它更像是两个对象实现的合并,而不是传统的继承模型(它可以提供超级访问器等)。

CoffeeScript将生成所需的代码,以便为您提供可能/可能不会寻求的典型继承模型。

in:

class Person
    constructor: (@name) ->

class Ninja extends Person`

出:

var Ninja, Person;
var __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) {
  for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
  function ctor() { this.constructor = child; }
  ctor.prototype = parent.prototype;
  child.prototype = new ctor;
  child.__super__ = parent.prototype;
  return child;
};
Person = function() {
  function Person(name) {
    this.name = name;
  }
  return Person;
}();
Ninja = function() {
  function Ninja() {
    Ninja.__super__.constructor.apply(this, arguments);
  }
  __extends(Ninja, Person);
  return Ninja;
}();