web前端|js教程
嵌套函数,函数内,外部函数
web前端-js教程
我们都知道在函数中定义的局部变量在声明他的函数体以及其嵌套的函数内始终是有定义的,并且在函数的作用域链上始终会有个对象指向全局对象,使函数能够访问到全局变量。
仿时时彩源码下载,vscode中jsp报错,新安装ubuntu,tomcat日志 删除,sqlite支持事物回滚吗,柳州网页设计,sql 数据库备份 脚本,8080抓服务器教程,轻量级文本编辑器插件,emp框架前端是怎么封装的,妹子图 爬虫视频,php命令行执行,seo网络推广是什么,千峰springboot,js特效 标签云,志愿者网站源码,h5网页标准格式,html网站免费模板,网站做后台教程,html5页面效果,js后台管理系统,易语言如何打开指定程序lzw
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中定义的局部变量吗?答案是否定的,把上面的例子稍作修改如下
易语言 点餐系统源码,ubuntu 复制重命名,tomcat监控怎么看,谷歌指数 爬虫,php第五章,SEO雏形lzw
var ga = global;function repeat() { alert(la); }var func = function() { var la = local; alert(1); repeat(); alert(2);};func();
上面的运行结果是只弹出了1,在调用repeat的时候,因为访问了未定义变量js解释器就报错把程序中断了。
news系统源码大揭密,ubuntu本地源路径,tomcat8常连接短链接,基于Linux的爬虫,php登录后出现新的页面,杭州seo分析lzw
原因是函数在定义时保存了一个作用域链,repeat函数在外部定义,在他的作用域中并没有一个局部变量叫la,继续在全局作用域查找也没找到la所以就会报错。
所以嵌套函数和在函数内嵌套调用外部函数还是有很大区别的。
昨天在回答一个问题/article/78958.htm时引发的思考,虽然概念我明白,但是当时一直想在函数内部调用的repeat为什么访问不到调用他的函数的局部变量,今天又翻了下参考资料自己用代码测试了一遍。希望这篇文章能帮助到有同样困惑的朋友。