标签:
IIFE(立即调用函数表达式)最广泛的用途是避免污染全局作用域. 已经有很多JavaScript库和JavaScript高手正在使用这种技巧, 尤其是在最流行jQuery插件的开发者中. 你也应该把这个技巧应用在你的程序的主要文件中(main.js).
在这个例子中, 我使用了匿名函数把所有全局作用域的变量变成了局部变量, 所以现在全局作用域中还可以定义新的变量, 不用顾忌是否会和匿名函数内的变量在变量名上发生冲突(还包括其他库或者框架):
//所有的代码包含在立即调用函数中 (function() { var firstName = "Richard"; funtion init() { doStuff(firstName); //在这里开始插入应用程序的代码... } function doStuff() { //... } function doMoreStuff() { //... } //启动应用程序; init(); })();
你可能在JavaScript库和JavaScript框架中已经见过它们了, 那么我们先由几个基本的例子开始:
设置默认值, 通常用
function documentTitle(theTitle) { if (!theTitle) { theTitle = "Untitled Document"; } }
替代
function documentTitle(theTitle) { theTitle = theTitle || "Untitled Document"; }
解析:
! 提示: JavaScript判断为假的值: null, false, 0, undefined, NaN 和 ""(空字符串). 记住像Infinity(无限大)这种 NaN 类的值是被判断为真不是假. 然而, NaN被判断为假. 除了以上这些, 其他值全部被判断为真.
不要这么做:
function isAdult(age) { if (age && age > 17) { return true; } else { return false; } }
替代
function isAdult(age) { return age && age > 17; }
解析:
标签:
原文地址:http://www.cnblogs.com/aegisada/p/4849703.html