JS内部函数一道自测题
来源:互联网 发布:淘宝店改区域 编辑:程序博客网 时间:2024/05/21 01:52
题目如下
var add = function(){var sum = 1;//父函数的变量var tem = function(x){sum = sum + x;return tem;//子函数;实现sum值增加x}tmp.toString = function(){//tmp的toString函数;返回此时的sum值return sum;}return tem;//将子函数返回;方便外部调用}//求alert(add(1)(2)(3))的输出值
通过对内部函数概念的理解分析,我们可以得出如下结论
1. 内部函数受其父函数作用域限制不能够被直接调用
2. 要想调用内部函数,要么定义全局变量并且将内部函数赋值给全局变量,通过调用全局变量来调用内部函数;
要么将内部函数直接返回给外部函数;
再来一步步解析这道题
1.add(1)可理解为:var innerFunction = add(1),由此我们获取到了内部函数对象并且执行父函数逻辑定义变量sum并赋值1;
2.那么innerFunction(2)的执行结果就不难解析了,即sum = 1+2;此时sum为3
3.以此类推,另外一个内部函数对象再执行下一步运算;此时sum =3+3;
4.alert调用tem的toString方法,输出运算最终结果6
举一反三不难得出 alert(add(100)(2)(3))的输出值为6;alert(add(1)(3)(3))的输出值为7
阅读全文
0 0
- JS内部函数一道自测题
- JS的一道题
- JS 函数内部同名对象
- JS函数内部属性:arguments
- 调用JS函数的内部函数
- 记录一道JS笔试题
- JS 内部调用函数 的书写方式
- JS如何调用函数内部变量?
- js函数内部属性arguments和this
- js内部函数的定义及调用
- 黑马javaSE内部编程题10道--第一道源码
- 由一道js题探讨构造函数、prototype和__proto__之间的关系
- C语言程序设计 自测题
- C语言程序设计 自测题
- 文件读写自测题
- 一些 C++ 自测题
- C语言程序设计 自测题
- Android自测题01
- 练习4
- ccf-地铁修建
- 一些Pascal的函数
- 浅析pt-table-checksum和pt-table-sync原理
- UEditor上传图片配置
- JS内部函数一道自测题
- QT 延时
- 齐次坐标
- jsp+javabean
- leedcode 14. Longest Common Prefix
- win10 U盘安装 ubuntu-16.04 双系统 出现的no caching mode page found 问题
- 数组阻塞队列 ArrayBlockingQueue
- C# 类型转换的一些简单方法
- 个人C#学习记录(1)——ref和out区别