JavaScript Allongé 第一呷 :基础函数 (3) 未完
2024-09-30 04:25:08
闭包与域
是时候来看下一个带函数的函数是如何工作的:
(function (x) {
return function (y) {
return x
}
})(1)(2)
//=> 1
首先,我们使用我们学过的东西。给出 (某函数)(某参数),我们知道我们将函数应用到参数,创建一个环境,将参数的值绑定到名称,然后对函数表达式求值,所以我们首先用这段代码这样做:
(function (x) {
return function (y) {
return x
}
})(1)
//=> [Function]
这个环境属于带标识的function (x) ... becomes {x: 1, ...}函数,而应用这个函数的结果是另一个函数值。返回值为函数是有意义的,因为function (x) ...的函数体的表达式是:
function (y) {
return x
}
所以现在我们有一个代表该函数的值,现在我们打算取该函数的值然后将它应用到参数2,像这样:
(function (y) {
return x
})(2)
所以我们似乎得到了一个新的环境{y: 2, ...}。在该函数的环境中表达式x将如何被求值呢?在自己的环境中是没有x的,它必须来自其他的地方。
顺便说一下,这是javascript及其同家庭语言的其中一个伟大的定义特征:
最新文章
- JSP里面ajax不能返回后台传出的值得问题。。。。
- 【淘淘】Quartz作业存储与管理
- 数位DP之奥义
- Android 手机卫士--实现设置界面的一个条目布局结构
- Delphi项目构成之单元文件PAS
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)
- Android开发学习总结(五)——Android应用目录结构分析
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- 创建springbootdemo后运行报MongoSocketOpenException错误解决方法
- (2)Deep Learning之线性单元和梯度下降
- ListBox设置背景色无效的问题。 listview类似
- C风格字符串和C++string对象的相互转化
- FireMonkey 源码学习(2)
- Greys--JVM异常诊断工具
- 分享一个基于小米 soar 的开源 sql 分析与优化的 WEB 图形化工具
- Java 的双重分发与 Visitor 模式
- mysql数据优化--数据库结构的优化
- mysql exceeded the 'max_questions' resource 记录
- SQL一次性查询一个字段不同条件下的统计结果
- JMeter学习笔记(一) 工具的安装和基本介绍