Coffeescript, Classes & Zepto.js - PullRequest
       6

Coffeescript, Classes & Zepto.js

1 голос
/ 27 ноября 2010

Есть ли в zepto.js метод для добавления классов и расширения с помощью подклассов?

Смежный вопрос: дает ли Coffeescript возможность писать классы и расширять их без необходимости использования такой библиотеки, какпрототип, который имеет конкретные методы для этого?

1 Ответ

3 голосов
/ 27 ноября 2010

Обнаружение источника Zepto.js показывает, что у него есть метод $.extend, который может работать, но это скорее объединение двух объектов, чем традиционная модель наследования (которая обеспечивает такие вещи, как средства доступа Super).

CoffeeScript сгенерирует код, необходимый для предоставления вам типичной модели наследования, которую вы можете / не можете искать.

в:

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;
}();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...