2010-11-26 2 views
1

Est-ce que zepto.js a une méthode pour ajouter des classes et étendre avec des sous-classes?Coffeescript, Classes & Zepto.js

Une question connexe est: est-ce que Coffeescript vous donne, en effet, la possibilité d'écrire des classes et de les étendre sans avoir besoin d'une bibliothèque comme un prototype qui a des méthodes spécifiques pour le faire?

Répondre

3

Un lait écrémé de la source Zepto.js montre qu'il a une méthode $.extend qui peut fonctionner, mais il est plus d'une fusion de deux objets mise en œuvre d'un modèle d'héritage traditionnel (qui fournirait des choses comme Super accesseurs.)

CoffeeScript générera le code requis pour vous donner le modèle d'héritage typique que vous pouvez/ne pouvez pas rechercher.

dans:

class Person 
    constructor: (@name) -> 

class Ninja extends Person` 

sur:

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; 
}(); 
Questions connexes