Bootstrap3 插件的原理
插件的原理
在JavaScript中,在定义函数的时候,如果在函数体的后面加一对小括号,这个函数就会立即执行。如,以下代码定义了一个匿名函数,并立即执行:
function () { /* code */ } ();
由于它本身就是一个函数,因此可以接受参数。如,以下代码为匿名函数传入一个参数 a,它的值是 2:
(function (a) { /* code */ } (2));
当把这类函数放在一个 .js 文件中,你只需引用这个 .js 文件,这些函数便会自动执行,无需显式调用,非常方便。因此,Bootstrap 中的所有插件,都使用了这种模式。比如,以下是 button.js 文件的格式:
+function ($) {
'use strict';
/* other code */
}(jQuery);
这个文件的意思是声明一个函数,然后立即执行,并将jQuery对象作为函数的参数。这样作的好处是,此时函数内部的 $ 已经是局部变量,不会再受到外部作用域的影响。
function前面 + 号的作用是将函数声明转化为函数表达式,用来消除函数声明和函数表达式间的歧义。一元运算符可以算是消除歧义的最好方式,+ 号只是其中之一,你也可以使用其他一元运算符,如 !、;、+、-、=、~ 等。
关于作者
歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。
Bootstrap3 插件的原理相关推荐
- Android 插件化原理学习 —— Hook 机制之动态代理
前言 为了实现 App 的快速迭代更新,基于 H5 Hybrid 的解决方案有很多,由于 webview 本身的性能问题,也随之出现了很多基于 JS 引擎实现的原生渲染的方案,例如 React Nat ...
- 【Android 插件化】Hook 插件化框架 ( hook 插件化原理 | 插件包管理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】插件化原理 ( 类加载器 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- Android 插件化原理解析——Activity生命周期管理
之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...
- Android 插件化原理解析——Hook机制之AMSPMS
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook:插件框架通过AOP实现了插件使用和开发的透明性.在讲述DroidPlugin如何实现四大组件的插件 ...
- Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结
Atitit 插件机制原理与设计微内核 c# java 的实现attilax总结 1. 微内核与插件的优点1 2. 插件的注册与使用2 2.1. Ioc容器中注册插件2 2.2. 启动器微内核启动3 ...
- mybatis 原理_Mybatis大揭秘:plugin插件设计原理
点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:祖大俊 my.oschina.net/zudajun/blog/738973 大多数 ...
- android handler的机制和原理_Android 插件化原理——Hook机制之AMSamp;PMS解析
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook:插件框架通过AOP实现了插件使用和开发的透明性.在讲述DroidPlugin如何实现四大组件的插件 ...
- Android插件化原理—ClassLoader加载机制
前面<Android 插件化原理学习 -- Hook 机制之动态代理>一文中我们探索了一下动态代理 hook 实现了 启动没有在 AndroidManifest.xml 中显式声明的 Ac ...
最新文章
- 201671010423 词频统计软件项目报告
- 机器学习 KD树_递归_回溯_搜索(matlab实现)
- 编译通过,但在运行时报Resolution of the dependency failed
- What is the difference between “def” and “val” to define a function
- python版本差异_python的版本的差别 2,3
- Oracle 通过字段名查询其所在的表
- OS + Linux RedHat 7 / redhat 7 configuration
- ASP.NET MVC 解析模板生成静态页一(RazorEngine)
- 深入理解信息科学技术与创新之“自然智能”
- think-cell 无法安装怎么解决?
- win7硬盘安装工具_扔掉U盘和光驱,一键从硬盘安装操作系统,这个硬盘装机工具真爽...
- 大数据整体技术流程及架构
- Photoshop CS2 9.0注册机和注册方法
- iOS 日记app的制作过程(Objective-C)
- 操作系统--6设备管理
- 《人无信不立》你是一个有信用的人吗?
- python绘制笛卡尔直角坐标系
- Essential Phone PH1 刷 Android 9.0的方法
- Wordpress 4.6 任意命令执行漏洞
- msgbox窗口学习总结窗体复合框