javascript嵌套函数和在函数内调用外部函数的区别分析
作者:mdxy-dxy 发布时间:2024-04-22 22:44:27
标签:嵌套函数,函数内,外部函数
我们都知道在函数中定义的局部变量在声明他的函数体以及其嵌套的函数内始终是有定义的,并且在函数的作用域链上始终会有个对象指向全局对象,使函数能够访问到全局变量。
var ga = 'global';
var func = function() {
var la = 'local';
return function() {
return function()
{
return function()
{
alert(la);alert(ga);
}
}
}
}
a = func();
a()()();// 弹出 local 和 global
那么在外部定义的函数A, 被函数B在函数体内调用时,A能访问到B中定义的局部变量吗?答案是否定的,把上面的例子稍作修改如下
var ga = 'global';
function repeat() {
alert(la);
}
var func = function() {
var la = 'local';
alert(1);
repeat();
alert(2);
};
func();
上面的运行结果是只弹出了1,在调用repeat的时候,因为访问了未定义变量js解释器就报错把程序中断了。
原因是函数在定义时保存了一个作用域链,repeat函数在外部定义,在他的作用域中并没有一个局部变量叫la,继续在全局作用域查找也没找到la所以就会报错。
所以嵌套函数和在函数内嵌套调用外部函数还是有很大区别的。
昨天在回答一个问题https://www.aspxhome.com/article/78958.htm时引发的思考,虽然概念我明白,但是当时一直想在函数内部调用的repeat为什么访问不到调用他的函数的局部变量,今天又翻了下参考资料自己用代码测试了一遍。希望这篇文章能帮助到有同样困惑的朋友。
0
投稿
猜你喜欢
- 这篇文章是为了对网络模型的权重输出,可以用来转换成其他框架的模型。import tensorflow as tffrom tensorflo
- 打开VS2013 —> 工具 —> 选项 —> 环境 —> 字体和颜色 —> 纯文本(显示项中) —>
- 本文实例讲述了PHP日志LOG类定义与用法。分享给大家供大家参考,具体如下:<?php/*** PHP log 类 */class C
- 导语说到童年爱玩的电脑游戏,你会想到什么?最国民的莫过于金山打字通,接着是扫雷、红心大战,而红极一时的单机游戏当属《大富翁》。嘻嘻 打字游戏
- 本文主要给大家介绍了关于MySQL服务自动停止的解决方法,分享出来供大家参考学习,下面来一起看看:问题描述服务器上安装的 MySQL,会出现
- 绘制动图FuncAnimation,它的使用要求简洁且定制化程度较高。如果想将很多图片合并为一个动图,那么ArtistAnimation是最
- Tkinter实现UI分页标签显示:Input页,红色部分为当前Frame的位置,下半部分为第一页的子标签;三页标签的显示内容各不相同。实现
- 本文范例是书写两个日志:错误日志(ERROR级别)和运行日志(DEBUG级别),其中运行日志每日凌晨进行分割import logging,d
- 字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以Unicode作为中间编码,即先将其他编码的字符串解码(
- 测试环境:windows Server 2003 R2一、开始菜单启动项实现用户必须登录才可执行。测试脚本(python代码):import
- 前言写爬虫有一个绕不过去的问题就是验证码,现在验证码分类大概有4种:图像类滑动类点击类语音类今天先来看看图像类,这类验证码大多是数字、字母的
- 6、遮罩滤镜作用:该滤镜可以为对象建立一个覆盖于表面的膜,其效果就象戴着有色眼镜看物体一样。语法: {filter:mask(color=c
- 效果图:代码如下:<!DOCTYPE html><html lang="en"><head
- Jones向量假设光波沿z轴传播,那么其三个方向的电场分量可以表示为Jones矩阵能够保证二维列向量形状不变的运算有无穷多种,但最符合我们直
- 本文介绍一个exe打包工具pyinstaller,使用非常简单、方便,而且还跨平台。软硬件环境Windows 10 64bitPyQt5An
- 日期和时间的相互转换可以利用Python内置模块 time 和 datetime 完成,且有多种方法供我们选择,当然转换时我们可以直接利用当
- 这篇博客将介绍使用Python,OpenCV获取、更改像素,修改图像通道,截取图像感兴趣ROI;单通道图,BGR三通道图,四通道透明图,不透
- 引言语音端点检测最早应用于电话传输和检测系统当中,用于通信信道的时间分配,提高传输线路的利用效率.端点检测属于语音处理系统的前端操作,在语音
- pytorch forwod函数在父类中的调用问题背景最近在研究Detetron2的代码结构时,发现有些网络代码里面没有forward函数,
- 一、python3的安装建议安装python3,python2在未来将不再维护。python官方下载地址https://www.python