最近在看requirejs的时候看到了这么一种写法,一时不是很明白,在这里做一下学习记录,
define(function(){ function fun1(){ alert("it works"); } fun1(); })
这种写法有别于常用的js写法,它引入了作用域的概念,具体说就是“块级作用域”,简单示例如下
(function(){ //块级作用域 })();
块级作用域又可称作私有作用域,主要是区别于js中的变量或方法的全局作用域而言,上面代码中的包含的第一个括号声明了一个匿名函数,第二个括号表示调用了这个函数,这段代码的含义可以用一下代码表示:
var fun = function(){ alert(" it works"); }; fun();
这两种写法表达的意思是一样的:声明函数并调用。区别在于第一种的作用域是局部的,第二种的作用域是全局的。