toolbarlite随笔之插件的闭包写法
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随笔之插件的闭包写法的更多相关文章
- slider轮播插件的多种写法
slider轮播插件相信大家经常会用到,写法也是各种各样,大部分都是用的第三方提供的组件使用,如果想基于自己的业务特点封装个组件供自己使用的话就要自己封装组件了,网上看了大部分写法都是通过js控制do ...
- 【Android开发学习笔记】【高级】【随笔】插件化——Activity生命周期
前言 如同第一章我们说的,宿主程序通过 dexclassloader 将插件的类加载进来,然后通过反射去调用它的方法,这样Activity就被当成了一个普通的类来执行了,因此系统不再接管它的生命周期, ...
- 【Android开发学习笔记】【高级】【随笔】插件化——资源加载
前言 上一节我们针对插件最基本的原理进行了一个简单的demo实现,但是由于插件的Context对象被宿主所接管,因此无法加载插件程序的资源.那么如何解决这个问题捏? 有人提出这样的方案:将apk中的资 ...
- jQuery插件使用和写法
jQuery插件分类3中: 1.封装对象方法的插件. 2.封装全局函数的插件. 3.选择器插件. jQuery插件机制 jQuery提供了两个用于扩展jQuery功能的方法: 1.jQuery.fn. ...
- 前端随笔 - JavaScript中的闭包
前阵子重新复习了一下js基础知识,第一篇博客就以分享闭包心得为开始吧. 首先,要理解闭包,就必须要了解一个概念:作用域链. 作用域链 作用域代表着可访问变量的集合,变量分为全局变量和局部变量两种,在函 ...
- js模块化 javascript 模块化 闭包写法 闭包模块化写法
var main = main || {}; ; (function (main) { 'use strict'; //私有变量 var _s1 = 'Hello '; var _s2 = 'Worl ...
- 【JavaScript】插件参数的写法
就是实现复制的一个过程 (function() { var Explode = function(container, params) { 'use strict'; var n = this; if ...
- jquery插件的基本写法
(function($){ var a={name:'2222',age:5555} var b={sex:'男',grade:5555} var c=$.extend({},a,b);//合并到新的 ...
- 第7章 jQuery插件的使用和写法
第7章 jQuery插件的使用和写法 插件又称扩展,是一种遵循一定规范的应用程序接口写出来的程序. 插件的编写思想基于面向对象. 获取最新的插件可以查看jquery官网:http://plugins. ...
随机推荐
- UVA 12549 Sentry Robots (最小点覆盖)
这道题挺像hdu 5093 Battle ships的,不过那道题是要求最多放置的点数,而这道题是要求最小点覆盖. 顶点覆盖的定义是:在G中任意边至少有一个端点属于顶点集合S. 一个重要的位置有(x, ...
- nginx的web基础
基于nginx的web部署 [root@nginx ~]# cd /data/web/ client_body_temp/ conf/ fastcgi_temp/ html/ logs/ proxy_ ...
- VC-基础:MFC单文档程序架构解析
MFC单文档程序架构解析 这里我以科院杨老师的单文档程序来分析一下MFC单文档的程序架构,纯属个人见解,不当之处烦请指教! 首先我们了解到的是 图(一) theApp 是唯一一个在程序形成的时候就存在 ...
- Dubbo中的监控和管理
一.Dubbo中的监控 1.原理 原理:服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心. 2.搭建监控服务 3.修改配置文件 修改注册中心的地址: 注意:这个 ...
- vue引用文件
1)css引入在vue页面中<style scoped> @import url("../assets/css/home.css");</style>2)j ...
- 268. Missing Number@python
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...
- GIMP工具箱的自定义操作
首选项 中还包含工具箱的自定义操作:
- Elementary OS上eclipse卡死问题
解决: 1.可以用 sudo ./eclipse -vm /home/username/jdk_path/bin/java 启动但是启动后仍有显示问题. 2. 修改 eclipse.ini 在 -- ...
- 蓝牙学习(5) -- sockets
Frames 由下图可以看出 - SDU由多个I-frames中的Information Payload组成 - 一个I-frames又拆分成多个HCI data payload socket buf ...
- styled-components
参考: http://www.alloyteam.com/2017/05/guide-styled-components/ https://medium.com/styled-components/g ...