with try catch 作用域的问题
with({}){}和try{}catch(e){}会临时改变代码执行的作用域,
var foo="abc";
			with({foo:"d"}){
				function f(){
					alert(foo);
				}
				(function(){alert(foo)})()
				f()
			}
这段代码在执行f()时,理论上f函数的outer应该指向的是全局环境,但是实际执行过程中显示的却是“d”,说明他的outer指向的是with临时创建的词法环境
try{
			var e=10;
			throw new Error();
			}catch (e){
				function f(){
					alert(e);
				}
				(function(){
					alert(e);
				})();
				f();
			}
这段代码也是如此,f()函数执行的时候,outer应该指向的是全局环境,e应该是10,但实际情况确是error;
还不清楚原因
with try catch 作用域的问题的更多相关文章
- 3. web前端开发分享-css,js提高篇
		
一. css基础知识掌握之后(个人的标准是:弄清块元素与内联元素的区别,弄清float的应用场景,弄清position[pə'zɪʃən] 下五个属性static['stætɪk],relative[ ...
 - 第65课 C++中的异常处理(下)
		
1. C++中的异常处理 (1)catch语句块可以抛出异常 ①catch中获捕的异常可以被重新抛出 ②抛出的异常需要外层的try-catch块来捕获 ③catch(…)块中抛异常的方法是throw; ...
 - web前端开发分享-css,js提高篇
		
一. css基础知识掌握之后(个人的标准是:弄清块元素与内联元素的区别,弄清float的应用场景,弄清position[pə'zɪʃən] 下五个属性static['stætɪk],relative[ ...
 - js 不常用面试题  数组对象深度取值
		
function getPersonInfo(one, two, three) { console.log(one); console.log(two); console.log(three); } ...
 - 高程(4):执行环境、作用域、上下文执行过程、垃圾收集、try...catch...
		
高程三 4.2.4.3 一.执行环境 1.全局执行环境是最外层的执行环境. 2.每个函数都有自己的执行环境,执行函数时,函数环境就会被推入一个当前环境栈中,执行完毕,栈将其环境弹出,把控制器返回给之前 ...
 - 作用域&作用域链和with,catch语句&闭包
		
作用域(函数) 作用域:变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期; 在一些类C编程语言中花括号内的每一段代码都有各自的作用域,而且变量在声明它们的代码段外是不可见的,称之为块 ...
 - “全栈2019”Java异常第四章:catch代码块作用域详解
		
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
 - with和catch改变作用域链
		
总结笔记: with和catch会将对象中标识符的解析添加到作用域链的最前端, 标识符的解析就是with()和catch()括号中的对象. var x = 10, y = 10; with ({x: ...
 - JS 回调函数、立即执行、for块作用域、try/catch、let、垃圾收集  p3
		
限于时间关系,加上有些倦意,简单的记录下一些要点: 1.回调函数:就你把函数当成参数传给另一个函数,这个函数在某个时间段会执行这个函数.
 
随机推荐
- C# 访问MongoDB 通用方法类
			
using MongoDB.Driver; using System; namespace MongoDBDemo { public class MongoDb { public MongoDb(st ...
 - leetcode-【中等题】5. Longest Palindromic Substring
			
题目 Given a string S, find the longest palindromic substring in S. You may assume that the maximum le ...
 - (转)TortoiseGit(乌龟git)保存用户名密码的方法
			
返回博客列表 转 TortoiseGit(乌龟git)保存用户名密码的方法 元谷 发布时间: 2014/05/03 23:07 阅读: 20529 收藏: 21 点赞: 12 评论: 3 window ...
 - Spark Streaming源码解读之No Receivers彻底思考
			
本期内容 : Direct Acess Kafka Spark Streaming接收数据现在支持的两种方式: 01. Receiver的方式来接收数据,及输入数据的控制 02. No Receive ...
 - GitHub的.gitignore文件设置
			
用Eclipse连接GitHub 在本地仓库(最上层文件夹)建立.gitignore文件后,所有子文件夹下对应文件或者文件夹在submit的时候就会被忽略. 我将Eclipse的workspace当作 ...
 - rt—移植笔记2(Lwip)
			
首先参考f107已经有的目录结构添加Lwip这一组,添加各种.c文件及.文件. 还有drive下边的很重要的eth.c 到此,工程编译通过.(刚开始,小编是一个一个 的比对...一个一个错误排查... ...
 - NoSQL学习——MongoDB
			
MongoDB作为一款文档数据库,支持分片存储,scale-out,集群自动切换,下面将粗略的配置步骤总结如下: 几个重要概念: 数据库:集合--记录--游标(查询时标记序号) sharding分片: ...
 - 第三次作业:caculator
			
第三次作业 作业链接 ********* 遇到的问题: Scan类: 队列的使用方法不了解,上网查询并自己练习了一下才初步了解,才运用到作业 . 判断数字用的 if (input[i] >= ' ...
 - chroot directory
			
给 /A/B/C的C目录做chroot,要对C能读写,所以C目录不能做ROOT目录,对B做chroot. 设置C目录所有者为sftp 账户a,组也改为sftp组(这里a和sftp组都是之前建立好的sf ...
 - 项目在build machine中失败,本地Build成功的程序集版本问题
			
MSBuild在build machine中遇到which has a higher version than its reference assembly:(in my case let's say ...