手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:subclass

jQuery SubClass 带来的新的变化

jquery在1.5的时候多了一个subclass,代码大约如下:

JavaScript代码
  1. subclass: function(){  
  2.     function jQuerySubclass( selector, context ) {  
  3.         return new jQuerySubclass.fn.init( selector, context );  
  4.     }  
  5.     jQuerySubclass.superclass = this;  
  6.     jQuerySubclass.fn = jQuerySubclass.prototype = this();  
  7.     jQuerySubclass.fn.constructor = jQuerySubclass;  
  8.     jQuerySubclass.subclass = this.subclass;  
  9.     jQuerySubclass.fn.init = function init( selector, context ) {  
  10.         if (context && context instanceof jQuery && !(context instanceof jQuerySubclass)){  
  11.             context = jQuerySubclass(context);  
  12.         }  
  13.         return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass );  
  14.     };  
  15.     jQuerySubclass.fn.init.prototype = jQuerySubclass.fn;  
  16.     var rootjQuerySubclass = jQuerySubclass(document);  
  17.     return jQuerySubclass;  
  18. },  
很多看到这个代码的人都认为这个功能是用来优化插件的,因为现在jQuery的插件越来越多,有类似功能,类似名称的插件也越来越多了,所以,同名插件带来的困扰也就更多了。

未来怎么办,jQuery鼓励用户开发插件,但插件总不能老是给用户带来麻烦吧?所以这个subclass就成了新的插件机制所必备的方法,利用subclass来创建一个新的实例(即所谓的继承,当然也能覆写父类[jQuery]的方法 )。

只是这样的频繁继承,肯定会造成效率降低吧。怎么样既能继承,又不降低效率,这恐怕就是未来jQuery团队要考虑的事情了?但是否靠什么behavior这种行为的方式来加载呢?现在都在讲究这种行为触发性的插件。jQuery是不是未来也会采用这种方式呢。

Tags: jquery, plugin, subclass