标签:功能 comm 分割 ons 匿名 遇到 string 代码 忽略
1.知识点
1.1 函数声明:function fnName() {...}
;(函数声明提升,以 fnName() 形式调用)
使用 function
关键字声明一个函数,再给一个函数名,叫函数声明;
1.2 函数表达式: var fnName = function() { ... }
; (后加括号立即调用并返回值给变量)
使用 function
关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式;
1.3 匿名函数: function() { ... }
;
无名函数表达式
1.4 函数表达式加运算符立即执行
1.5原理:
1.5.1 js在"预编译"阶段, 会解释函数声明, 但却会忽略表达式.
1.5.2 当js执行到function() {//code}();时, 由于function() {//code}在"预编译"阶段已经被解释过, js会跳过function(){//code}, 试图去执行();, 故会报错; (不正确写法: function(){}() )
1.5.3 当js执行到(function {// code})();时, 由于(function {// code})是表达式, js会去对它求解得到返回值, 由于返回值是一 个函数, 故而遇到();时, 便会被执行.
2.用法
2.1 最普通写法
(function() { ... })()
(function(a) { ... })(12)
(最常用:第一个括号用于分割形成小块代码段,第二个括号为常见的函数执行小括号)
(function(){ ... }()) (function(a) { ... }
(12)
)
!function(a) { console.log(a); }(12345);
2.2 常见写法
2.2.1 结合jq封装插件(代码在jq之后)
(function ($) {
$.fn.test111 = function () { alert(‘test‘) } })(jQuery);
$("#elementid").test111();
2.2.2 命名空间
var nameSpace = nameSpace || {};
(function () { nameSpace.ns = function () { } }; })();
3.意义:创建局部作用域、命名空间、闭包、功能封装
标签:功能 comm 分割 ons 匿名 遇到 string 代码 忽略
原文地址:https://www.cnblogs.com/justSmile2/p/9483486.html