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设计模式真的很有创意。


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5048930.html,如需转载请自行联系原作者

相关文章
|
1天前
|
前端开发 JavaScript 数据处理
在JavaScript中,异步函数是指什么
【5月更文挑战第9天】JavaScript中的异步函数用于处理非立即完成的操作,如定时器、网络请求等。它们可通过回调函数、Promise或async/await来实现。示例展示了如何使用async/await模拟网络请求:定义异步函数fetchData返回Promise,在另一异步函数processData中使用await等待结果并处理。当fetchData的Promise解析时,data变量接收结果并继续执行后续代码。注意,调用异步函数不会阻塞执行,而是会在适当时间点继续。
7 0
|
1天前
|
自然语言处理 JavaScript 前端开发
在JavaScript中,this关键字的行为可能会因函数的调用方式而异
【5月更文挑战第9天】JavaScript中的`this`关键字行为取决于函数调用方式。在非严格模式下,直接调用函数时`this`指全局对象,严格模式下为`undefined`。作为对象方法调用时,`this`指向该对象。用`new`调用构造函数时,`this`指向新实例。通过`call`、`apply`、`bind`可手动设置`this`值。在回调和事件处理中,`this`可能不直观,箭头函数和绑定方法可帮助管理`this`的行为。
8 1
|
1天前
|
JavaScript 前端开发 网络架构
JavaScript中的箭头函数是一种新的函数表达形式
【5月更文挑战第9天】JavaScript的箭头函数以简洁语法简化函数定义,其特性包括:1) 不绑定自身this,继承上下文的this,适合回调和事件处理;2) 没有arguments对象,需用剩余参数语法访问参数;3) 不能用作构造函数,无new调用;4) 没有prototype属性,不支持基于原型的继承。箭头函数在特定场景下优化了this处理,但使用时要注意与普通函数的差异。
6 2
|
3天前
|
JavaScript 前端开发
js的一些内置函数
js的一些内置函数
7 1
|
3天前
|
JavaScript 前端开发 索引
js的includes函数
js的includes函数
9 1
|
3天前
|
JavaScript 安全 前端开发
js的map函数
js的map函数
7 0
|
3天前
|
JavaScript 前端开发
js的filter函数
js的filter函数
8 1
|
10天前
|
存储 移动开发 JavaScript
学习javascript,前端知识精讲,助力你轻松掌握
学习javascript,前端知识精讲,助力你轻松掌握
|
17天前
|
JavaScript 前端开发 测试技术
学习JavaScript
【4月更文挑战第23天】学习JavaScript
13 1
|
25天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习