toolbarlite这个东西至今没搞懂是什么玩意。因为除了源代码我实在是找不到除了toolbar之外的任何关于toolbarlite的东西了。不知道toolbarlite是不是toolbar的子集,不过随意吧,我是懒得去读toolbar的源代码了。

既然是使用了toolbarlite这个小插件,那么自然是可以找到源代码看的,于是我就翻开了。于是我就蒙蔽了,我实在是不知道那些写插件的人为什么要写英文注释,然后偏偏搞上中文版的名号,这是欺诈!当然跟我英文不好没什么关系的,这不容置疑。

然后我只能顺着一点一点的读代码,然后一点点的分解代码含义。

只是有一段我实在是看不懂,因为他tm的根本就没按照标准格式书写,我现在用的这个ide并没有高亮范围的功能,你知道对{}、【】的痛苦吗,我的老天。。。

然后其实我是有点不太懂(function($){}(jQuery))这个写法的,于是我打开了万能的度娘,get到了http://blog.csdn.net/szwangdf/article/details/43153077这篇文章。看到访问量的时候我就跪了。

然后发现原来$(document).ready(function(){})、(function($){})(jQuery)、$(function(){})、jQuery(function($){})的作用都是一样的,那就是闭包。

至于什么是闭包这里不多说了,学js的时候就会接触。那么紧紧是闭包来写一个插件是不是多此一举呢?并不是,其实其形成闭包的主要原因是防止冲突,插件那么多,资源那么少。而$作为一个形参的存在,jQuery作为一个实参的存在,形成局部变量,避免冲突的发生。

就我接触的一些轻量级插件来说,大致都是使用了此种方法,当然,我更喜欢第一种写法,简介明了,不会造成作用域的混淆——这实在是很让人头疼的事情。

toolbarlite随笔之插件的闭包写法的更多相关文章

  1. slider轮播插件的多种写法

    slider轮播插件相信大家经常会用到,写法也是各种各样,大部分都是用的第三方提供的组件使用,如果想基于自己的业务特点封装个组件供自己使用的话就要自己封装组件了,网上看了大部分写法都是通过js控制do ...

  2. 【Android开发学习笔记】【高级】【随笔】插件化——Activity生命周期

    前言 如同第一章我们说的,宿主程序通过 dexclassloader 将插件的类加载进来,然后通过反射去调用它的方法,这样Activity就被当成了一个普通的类来执行了,因此系统不再接管它的生命周期, ...

  3. 【Android开发学习笔记】【高级】【随笔】插件化——资源加载

    前言 上一节我们针对插件最基本的原理进行了一个简单的demo实现,但是由于插件的Context对象被宿主所接管,因此无法加载插件程序的资源.那么如何解决这个问题捏? 有人提出这样的方案:将apk中的资 ...

  4. jQuery插件使用和写法

    jQuery插件分类3中: 1.封装对象方法的插件. 2.封装全局函数的插件. 3.选择器插件. jQuery插件机制 jQuery提供了两个用于扩展jQuery功能的方法: 1.jQuery.fn. ...

  5. 前端随笔 - JavaScript中的闭包

    前阵子重新复习了一下js基础知识,第一篇博客就以分享闭包心得为开始吧. 首先,要理解闭包,就必须要了解一个概念:作用域链. 作用域链 作用域代表着可访问变量的集合,变量分为全局变量和局部变量两种,在函 ...

  6. js模块化 javascript 模块化 闭包写法 闭包模块化写法

    var main = main || {}; ; (function (main) { 'use strict'; //私有变量 var _s1 = 'Hello '; var _s2 = 'Worl ...

  7. 【JavaScript】插件参数的写法

    就是实现复制的一个过程 (function() { var Explode = function(container, params) { 'use strict'; var n = this; if ...

  8. jquery插件的基本写法

    (function($){ var a={name:'2222',age:5555} var b={sex:'男',grade:5555} var c=$.extend({},a,b);//合并到新的 ...

  9. 第7章 jQuery插件的使用和写法

    第7章 jQuery插件的使用和写法 插件又称扩展,是一种遵循一定规范的应用程序接口写出来的程序. 插件的编写思想基于面向对象. 获取最新的插件可以查看jquery官网:http://plugins. ...

随机推荐

  1. UVA 10817 - Headmaster's Headache(三进制状压dp)

    题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=20&pag ...

  2. 项目中多条数据保存的json实例

    //js代码function checkCode(num){ var typeid = $("#typeid").val(); if(typeid == "") ...

  3. 线程调度的问题:Lock Convoy(锁封护)与Priority Inversion(优先级反转)

    Lock Convoy(锁封护) [1]Lock Convoy是在多线程并发环境下由于锁的使用而引起的性能退化问题.当多个相同优先级的线程频繁地争抢同一个锁时可能会引起lock convoy问题,一般 ...

  4. 从prototype beandefinition 谈 spring 的关闭流程和 prototype 的特性

    背景介绍: 服务端期望使用 面向对象编程, 和 spring 结合的话只能是通过 prototype 的 bean 定义,并通过 getBean 获取. 优雅停机探究: 代码说明: 1. 类关系 Si ...

  5. shell脚本,配置文件加载顺序,以及什么时候加载。

    在linux系统中,有/etc/profile,/etc/bashrc ,~/.bash_profile,~/bashrc这四个配置文件,这些文件,会自动的在某些时候加载,也就是点一下,一般都是些别名 ...

  6. Bzoj 1088: [SCOI2005]扫雷Mine (DP)

    Bzoj 1088: [SCOI2005]扫雷Mine 怒写一发,算不上DP的游戏题 知道了前\(i-1\)项,第\(i\)项会被第二列的第\(i-1\)得知 设\(f[i]\)为第一列的第\(i\) ...

  7. emoji等表情符号存mysql的方法

    项目中需要存储用户信息(用户昵称有表情符号),自然就遇到了emoji等表情符号如何被mysql DB支持的问题 这里引用先行者博文:https://segmentfault.com/a/1190000 ...

  8. perl中foreach(二)

    本文和大家重点讨论一下Perl foreach命令的用法,Perl foreach循环中控制变量的值会被Perl自动保存和恢复.当循环进行时,是没有办法改变其值的.循环结束时,变量的值会回到循环开始前 ...

  9. LeetCode(90) Subsets II

    题目 Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...

  10. LeetCode(9)Palindrome Number

    题目: Determine whether an integer is a palindrome. Do this without extra space. Some hints: Could neg ...