我以這種方式將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