浅谈JavaScript中的作用域

最近在看requirejs的时候看到了这么一种写法,一时不是很明白,在这里做一下学习记录,

define(function(){
    function fun1(){
      alert("it works");
    }

    fun1();
})

这种写法有别于常用的js写法,它引入了作用域的概念,具体说就是“块级作用域”,简单示例如下

(function(){

    //块级作用域

})();

块级作用域又可称作私有作用域,主要是区别于js中的变量或方法的全局作用域而言,上面代码中的包含的第一个括号声明了一个匿名函数,第二个括号表示调用了这个函数,这段代码的含义可以用一下代码表示:

var fun = function(){
  alert(" it works");      
};

fun();

这两种写法表达的意思是一样的:声明函数并调用。区别在于第一种的作用域是局部的,第二种的作用域是全局的。

原文地址:https://www.cnblogs.com/siyu/p/4223219.html