JavaScript函数自调用

简介: JavaScript函数自调用

自调用函数的参数


(function (window, undefined) {
  var document = window.document;
}(window, undefined))


  • 传入window对象


将来代码压缩的时候,可以吧 function (window) 压缩成 function (w)


  • 传入undefined


在将来会看到别人写的代码中会把undefined作为函数的参数(当前案例没有使用)

因为在有的老版本的浏览器中 undefined可以被重新赋值,防止undefined 被重新赋值


整理代码


现在的代码结构清晰,谁出问题就找到对应的js文件即可。


通过自调用函数,已经防止了变量命名污染的问题


但是,由于js文件数较多,需要在页面上引用,会产生文件依赖的问题(先引入那个js,再引入哪个js)


将来通过工具把js文件合并并压缩。现在手工合并js文件演示


问题1


// 如果存在多个自调用函数要用分号分割,否则语法错误
// 下面代码会报错
(function () {
}())
(function () {
}())
// 所以代码规范中会建议在自调用函数之前加上分号
// 下面代码没有问题
;(function () {
}())
;(function () {
}())


问题2


// 当自调用函数 前面有函数声明时,会把自调用函数作为参数
// 所以建议自调用函数前,加上;
var a = function () {
  alert('11');
}
(function () {
  alert('22');
}())
相关文章
|
16天前
|
JavaScript
js函数封装 —— 金额添加千分位分隔符
js函数封装 —— 金额添加千分位分隔符
16 2
|
13天前
|
JavaScript
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
12 0
|
14天前
|
JavaScript
js 高频实用函数封装汇总(持续更新)
js 高频实用函数封装汇总(持续更新)
12 0
|
15天前
|
JavaScript
js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
13 0
|
15天前
|
JavaScript
js 调试 —— 断点(含进入函数、条件断点等)
js 调试 —— 断点(含进入函数、条件断点等)
17 0
|
15天前
|
JavaScript
JS【详解】函数.bind()
JS【详解】函数.bind()
7 0
|
15天前
|
JavaScript
js 【详解】函数中的 this 指向
js 【详解】函数中的 this 指向
14 0
|
15天前
|
存储 JavaScript 前端开发
|
16天前
|
前端开发 JavaScript
前端 JS 经典:箭头函数的意义
前端 JS 经典:箭头函数的意义
12 0
|
16天前
|
前端开发 JavaScript
前端 JS 经典:函数签名
前端 JS 经典:函数签名
10 0