我以这种方式将jQuery扩展为ES6类。它似乎完成了一切,但我担心速度,所以我也进行了测试。它可以在0.5秒内创建1000个新的自己的实例。这在MOST中用于生成作为对象的表行(对于复杂的,更新不能自行清空的表)。我想知道是否有更好的方式来继承jQuery的原型比这 this.__proto__ = $.extend(true, this.__proto__, this.__proto__.__proto__)
用ES6扩展jquery
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实例需要500ms的?这太可怕了。 – Bergi
为什么你认为'extends $ .fn.init'不足以继承jQuery方法?顺便说一句,jQuery只有一个原型,我不知道你为什么在这里使用复数。 – Bergi
'$ .extend(true,this .__ proto__,this .__ proto __.__ proto __)',创建一个深度拷贝,这本身是一个相对缓慢的过程,但出于好奇,我想知道你会从中得到什么好处? – Rohit416