Я проложил этот путь, чтобы расширить jQuery как класс ES6. Кажется, что все выполняет, но меня беспокоит скорость, поэтому я также проверил тест. Он может создать 1000 новых экземпляров себя менее чем за 0,5 секунды. Это должно использоваться в MOST для генерации строк таблицы, которые являются объектами (для сложных, обновления таблиц, которые сами не пустуют). Мне интересно, если есть лучший способ, чтобы наследовать Jquery прототипы, чем это this.__proto__ = $.extend(true, this.__proto__, this.__proto__.__proto__)
Расширение jquery с ES6
class Popup extends jQuery.fn.init {
constructor() {
super('<div>test</div>');
this.$wrapper = null;
this.__proto__ = $.extend(true, this.__proto__, this.__proto__.__proto__)
return this;
}
test() {
console.log('hi')
}
}
https://jsfiddle.net/ctyzaphw/3/
1000 экземпляров принять 500мс? Это ужасно медленно. – Bergi
Почему, по-вашему, 'extends $ .fn.init' недостаточно, чтобы наследовать методы jQuery? Btw, у jQuery только один прототип, я не уверен, почему вы используете множественное число здесь. – Bergi
'$ .extend (true, this .__ proto__, this .__ proto __.__ proto __)', создавая глубокую копию, которая сама по себе является относительно медленным процессом, но просто из любопытства интересует, какую выгоду вы выберете из этого? – Rohit416