jQuery 核心
2016-01-11 23:21
731 查看
jQuery 核心 “3.0.0-pre”
1.插件机制jQuery.extend(object)与
jQuery.fn.extend(object)
jQuery.fn = jQuery.prototype={}; jQuery.extend = jQuery.fn.extend = function() {}
区别:
jQuery.extend(object):扩展的是jQuery这个对象本身,相当于对jQuery这个对象里面添加了方法;用法:$.~;
jQuery.fn.extend(object):扩展的是jQuery的原型里面的方法,是对于个体来说。需要实例化对象才能使用;eg:$(“input”).~;
jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context ); },
小结:如果jQuery是人这个类的话,那么extend就是往这个类里面添加男人、女人、老人、小孩……;而fn.extend就是给特定的人添加唱歌、跳舞;一般添加插件就用
(jQuery.fn.extend());
2.多库共存
jQuery.noConflict(Boolean),这个方法主要是确保jQery不会与其它的库里的$对象发生冲突;
源码:
var // Map over jQuery in case of overwrite _jQuery = window.jQuery, // Map over the $ in case of overwrite _$ = window.$; jQuery.noConflict = function( deep ) { if ( window.$ === jQuery ) { window.$ = _$; } if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } return jQuery; }; if ( !noGlobal ) { window.jQuery = window.$ = jQuery; }
用法:
1.上面的
_jQuery/_$都为undefined;因为在他们下面
window.jQuery 和 window.$才被赋的值,声明是在作用域的顶端所以是
undefined;
2.noConflict方法返回的是jQuery对象,所以可以你自己定义方法名;eg:
var jq = jQuery.noConflict(true);用Boolean值得原因是把方法名的jQuery也去掉;
3.如果只与其它的库同名$,那么就可以直接调用
jQuery.noConflict()方法;从源码中就可以看出,这样就不会进第二个if判断语句;
相关文章推荐
- Ruby中require、load、include、extend的区别介绍
- Extjs中使用extend(js继承) 的代码
- jQuery中$.extend()用法实例
- jQuery中noconflict函数的实现原理分解
- jquery 插件开发 extjs中的extend用法小结
- jQuery.extend 函数及用法详细
- $.extend 的一个小问题
- JQuery中extend使用介绍
- 开发插件的两个方法jquery.fn.extend与jquery.extend
- jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
- jQuery中 noConflict() 方法使用
- jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
- JavaScript Object的extend是一个常用的功能
- Javascript Object.extend
- jQuery.extend 函数详解
- 详解jQuery插件开发中的extend方法
- JQuery中extend的用法实例分析
- Jquery中扩展方法extend使用技巧
- jQuery中noConflict()用法实例分析
- python list中append()与extend()用法分享