JavaScript库基本格式写法
/********************************************************************* * JavaScript库基本格式写法 * 说明: * 由于自己有单独实现一些Javascript函数,希望将其做成库的形式被重复 * 利用,不过后续需要进一步去分析一些库的源代码才能清楚如何写一个JS库。 * * 2017-8-28 深圳 龙华樟坑村 曾剑锋 ********************************************************************/ 一、参考文档: 1. 如何编写一个JS库 http://www.jianshu.com/p/4c895dbbf116 2. What does (function($) {})(jQuery); mean? https://stackoverflow.com/questions/2937227/what-does-function-jquery-mean 3. jquery.fn.extend与jquery.extend http://www.cnblogs.com/wyjgreat/archive/2011/07/19/2110754.html 4. JQuery Plugin Defaults and Options https://stackoverflow.com/questions/8905507/jquery-plugin-defaults-and-options 5. jQuery.extend() https://api.jquery.com/jquery.extend/ 二、(function($) {})(jQuery); 1. a code block that looks like (function(){})() is merely a function that is executed in place. 2. function($) {}: 相当于函数声明; 3. (函数声明)(函数参数): 相当于执行函数; 4. (function($) {})(jQuery): 相当于声明一个function($) {}的函数,并直接执行,将JQuery作为参数传入,形参是$; 三、jquery.fn.extend、jquery.extend 1. jQuery.extend(object): 为扩展jQuery类本身.为类添加新的方法。 2. jQuery.fn.extend(object): 给jQuery对象添加方法。 3. jQuery.extend(): 调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现。 4. jQuery.fn.extend(): 调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法。 四、库默认、修改配置写法: <script> var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; // Merge defaults and options, without modifying defaults var settings = $.extend( {}, defaults, options ); // Assuming JSON.stringify - not available in IE<8 $( "#log" ).append( "<div><b>defaults -- </b>" + JSON.stringify( defaults ) + "</div>" ); $( "#log" ).append( "<div><b>options -- </b>" + JSON.stringify( options ) + "</div>" ); $( "#log" ).append( "<div><b>settings -- </b>" + JSON.stringify( settings ) + "</div>" ); </script>