with和catch改变作用域链
总结笔记:
with和catch会将对象中标识符的解析添加到作用域链的最前端,
标识符的解析就是with()和catch()括号中的对象。
var x = 10, y = 10; with ({x: 20}) {
//作用域链:对象{x: 20} ----> global(var x=10, y=10) var x = 30, y = 30;
//这时候会改变作用域链中的值,var x=30先沿着作用域找到在对象{x:20}中的x,
//然后x的值改变为30,var y=30先沿着作用域链找到global的y值,将其改为30 alert(x); // 30 alert(y); // 30 }
//with语句执行完之后,对象标识符的解析(在括号中的对象{x:20})将会被销毁 alert(x); // 10
alert(y); // 30
with也是一个对象,含有__proto__属性,指向Object.prototype
with和catch改变作用域链的更多相关文章
- 作用域&作用域链和with,catch语句&闭包
作用域(函数) 作用域:变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期; 在一些类C编程语言中花括号内的每一段代码都有各自的作用域,而且变量在声明它们的代码段外是不可见的,称之为块 ...
- javscript闭包的准备工作 -- 作用域与作用域链
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- javascript作用域和作用域链摘录
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- javascript作用域链学习笔记
作用域链 "JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里." --权威指南 在JavaScript中,一切皆对象,包括函数.函数对象和其它对象 ...
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- js原型链闭包作用域链-Tom
1.原型相当于Java.C++里面的父类,由封装公有属性及方法而产生,子类可以继承. 原型继承实现(函数的原型属性指向原型函数一个实例对象,函数的原型的构造函数指向函数本身) 1)eg:原型链 fun ...
- JavaScript 开发进阶:理解 JavaScript 作用域和作用域链(转载 学习中。。。)
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- JavaScript 作用域和作用域链
作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望 ...
- Scope Chain(作用域链)
本章,我们讨论一下ECMAScript中的作用域链 , 开门见山. 什么是作用域链 i.ECMAScript是允许创建内部函数的,甚至能从父函数中返回这些函数.作用域链正是内部上下文中所有变量对象(及 ...
随机推荐
- 用python的正则表达式实现简单的计算器功能
#!/usr/bin/env python # -*- coding:utf-8 -*- import sys import re def welcome_func(): ""&q ...
- AJAX发送json,SpringMVC 接收JSON,@RequestBody
需求:JQuery ajax前台,采用 POST请求 发送json,后台使用SpringMVC接收json并处理 前台: $.ajax({ url:"请求地址", type:&qu ...
- 微信发送模版消息,PHP代码简单案例
function http_request($url,$data=array()){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); c ...
- sql的编写需要注意优化
使用limit对查询结果的记录进行限定 避免select *,将需要查找的字段列出来 使用连接(join)来代替子查询 拆分大的delete或insert语句 可通过开启慢查询日志来找出较慢的SQL ...
- 老男孩python作业4-ATM程序开发
实现一个ATM + 购物商城程序: 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款 ...
- mysql 查询月份数据.
//查看本月数据 SELECT *FROMcontent_publishWHEREdate_format(publish_time, '%Y %m') = date_format(DATE_SUB(c ...
- angular model-dialog 关闭按钮
<button class="close" data-dismiss="modal" type="button" aria-label ...
- Python入门笔记——(2)列表和元组
一.序列 python包含6种内建的序列:列表.元组.字符串.Unicode字符串.buffer对象和xrange对象.序列中每个元素被分配一个序号即索引,第一个索引为0,第二个为1,以此类推.也可以 ...
- PIE SDK波段合成
1.算法功能简介 波段合成功能主要用于将多幅图像合并为一个新的多波段图像(即波段的叠加打包,构建一个新的多波段文件),从而可根据不同的用途选择不同波长范围内的波段合成 RGB 彩色图像. PIE支持算 ...
- oracle 单实例DG(配置篇二)
一,DG搭建实例--主库配置 one : 归档配置 01,查看归档 1 select log_mode,force_logging from v$database; 02,开启归档 关闭数据库重新启 ...