Использование стандартного ES5 У меня есть этот метод, который позволяет мне добавлять методы в цепи прототипов моей библиотеки (это позволяет расширить основной библиотеки, а также любые компоненты, которые прикреплены к библиотеке):Продление ES6 классов программно
library.extend = function(extendId, extendObj) {
//if it's an extension of the core library object...
if(extendId === 'library') {
library.prototype[extendObj.name] = extendObj.func;
} else {
library.component[extendId].prototype[extendObj.name] = extendObj;
}
};
Usage будет:
/* create some new class */
var somecomponent = function() {}
somecomponent.protoype.somemethod = function() {}
/* extend the base libraries prototype chain with the new class*/
library.extend('library', somecomponent)
в ES6 классах у нас есть прототипы, но они замаскированы синтаксис класса, и вы должны добавить методы в класс с помощью метода extends
.
Из-за этого я не уверен, как я могу программно добавлять методы в классы es6, используя метод, аналогичный тому, что у меня выше.
Не указывая, как вы используете этот код, очень сложно понять, что вы просите. Однако ... Как правило, классы ES2015 можно считать «нормальными» (ES5) функциями. – Amit
вы сможете расширить прототип. класс - это не просто синтаксический сахар. – webduvet
@ Amit Я добавил пример использования, хотя я думаю, что код говорит сам за себя ... он просто расширяет цепочку прототипов. –