把以前看的jQuery源码的分析笔记搬到博客上,重温经典,也是为了方便查询。
<script src="jquery-1.9.1.min.js"></script> <script> $.extend({ leftTrim:function (str) { return str.replace(/^\s+/,‘‘); } }); </script> <script> $(function () { var str = ‘ hello ‘; alert(‘(‘+$.leftTrim(str)+‘)‘); }); </script>
再看jQuery对象的实例方法:
<script src="jquery-1.9.1.min.js"></script> <script> $.fn.extend({ drag:function () { var disX = 0; var disY = 0; var This = this; this.mousedown(function (ev) { disX = ev.pageX - $(this).offset().left; disY = ev.pageY - $(this).offset().top; $(document).mousemove(function (ev) { This.css(‘left‘,ev.pageX-disX); This.css(‘top‘,ev.pageY-disY); }); $(document).mouseup(function () { $(this).off(); }); return false; }); } }); </script> <script> $(function () { $(‘div‘).drag(); }); </script>
jQuery.extend = jQuery.fn.extend = function() {};
可以看到,jQuery.extend和jQuery.fn.extend其实是同指向同一方法的不同引用。
jQuery源码分析(6) - $.xxx()和$().xxx()幕后
原文:https://www.cnblogs.com/easonw/p/11506739.html