js深入研究之函数内的函数

第一种

function foo() {
  var a = 10;
 
  function bar() {
    a *= 2;
  }
   
  bar(); 
  return a;
}

 

第二种

function foo() {
  var a = 10;
 
  function bar() {
    a *= 2;
    return a;
  }
   
  return bar;      
}

 

两种效果相同。

调用结果

var baz = foo(); // baz is now a reference to function bar.
alert(baz()); // returns 20.
alert(baz()); // returns 40.
alert(baz()); // returns 80.

var blat = foo(); // blat is another reference to bar.
alert(blat()); // returns 20, because a new copy of a is being used. 

有意思。

js设计模式真的很有创意。

posted @ 2015-12-15 17:40  TBHacker  阅读(564)  评论(0编辑  收藏  举报