码迷,mamicode.com
首页 > 其他好文 > 详细

Closure - Mimicking block scope

时间:2015-05-17 12:01:01      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:

The basic syntax of an anoymous function used as a block scope (often called a private scope) is as follows:

(function(){

  // block code here

}) ();

A variable is just a representation of another value, so the variable can be replaced with the actual value, and the code works fine.

var someFunction = function(){

  // block code here

};

somefunction();

However, the following won‘t work:

function(){

  // block code here

}();        // error

The code causes a syntax error, because JavaScript sees the function keyword as the begining of a function declaration, and function declarations cannot be followed by parentheses. Function expressions, however, can be followed by parentheses. To turn the function declaration into a function expression, you need only surround it with the parentheses like this:

(function(){

  //block code here 

})();

These private scopes can be used anywhere variables are needed temporarily, as in this example:

1 function outputNumbers(count){
2     (function(){
3         for (var i=0; i<count; i++){
4             alert(i);
5         }
6     }) ();
7   
8     alert(i);           // causes an error   
9 }

 

Closure - Mimicking block scope

标签:

原文地址:http://www.cnblogs.com/linxd/p/4509319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!