CoffeeScript, Classes & Zepto.js
-
28-09-2019 - |
Вопрос
У Zepto.js есть способ добавления классов и простирание с подклассами?
Подсоединенный вопрос: CoffeeScript дает вам, по существу, возможность писать классы и расширить их без необходимости библиотеки, такой как прототип, который имеет определенные методы для этого?
Решение
Скима источника Zepto.js показывает, что имеет $.extend
Метод, который может работать, но это скорее объединение двух объектов внедрения, чем традиционная модель наследования (которая обеспечила бы такие вещи, как Super Accessors.)
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;
}();
Не связан с StackOverflow