javaScript_with用法
with语句用途
暂时改变作用域链、简化代码。
语法结构
with(object){
//其他语句
}
例1
with(person){
name= "zhang";
address.country= "中国";
sex. = "男";
}
对应的常规写法是:
person.name = "zhang";
person.address.country = "中国";
person.sex= "男";
with语句中的优先级
With语句内变量、方法>object对象内变量、方法>全局变量、方法
例2
function a(){
console.log("function_global");
}
var b = 'variable_global';
var ob = new Object();
ob.a = function(){
console.log("function_object");
}
ob.b = 'variable_object';
with(ob){
var a = function(){
console.log("function_local");
}
var b = 'variable_local';
a();
console.log(b);
}
结果:

测试链接:
例3
function a(){
console.log("function_global");
}
var b = 'variable_global';
var ob = new Object();
ob.a = function(){
console.log("function_object");
}
ob.b = 'variable_object';
with(ob){
a();
console.log(b);
}
结果:

测试链接:
http://jsfiddle.net/9dnrgjkg/1/
例4
function a(){
console.log("function_global");
}
var b = 'variable_global';
var ob = new Object();
with(ob){
a();
console.log(b);
}
结果:

测试链接:
http://jsfiddle.net/9dnrgjkg/2/
替代with语句
执行with语句时,每次需检测with语句中的变量是否属于with包含的对象,因此with语句执行效率不高。为了提高执行效率,建议尽量少使用with语句,可参考例5代替with语句:
例5
var person = new Object(); person .name = "lzhang"; person .address.country = "中国"; person .sex = "男";
javaScript_with用法的更多相关文章
- EditText 基本用法
title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- Java中的Socket的用法
Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- python enumerate 用法
A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...
- [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...
- 【JavaScript】innerHTML、innerText和outerHTML的用法区别
用法: <div id="test"> <span style="color:red">test1</span> tes ...
- chattr用法
[root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...
- 萌新笔记——vim命令“=”、“d”、“y”的用法(结合光标移动命令,一些场合会非常方便)
vim有许多命令,网上搜有一堆贴子.文章列举出各种功能的命令. 对于"="."d"."y",我在无意中发现了它们所具有的相同的一些用法,先举 ...
随机推荐
- Linux架设Jsp环境
本文已发表在2010年<网管员世界> 650) this.width=650;" onclick="window.open("http://blog.51ct ...
- iPad之Linux平台实践
updata.... 本文出自 "李晨光原创技术博客" 博客,谢绝转载!
- 深入了解Linux远程桌面
本文转载于:http://www.linux521.com/2009/system/201004/11001.html 已发表在<网管员世界>2010年3月杂志 本 ...
- CMake编译Makefile
以编译Libtif文件为例: 你可以用CMake编译libtiff,超简单,两个步骤. 参考文章 CharlesSimonyi,libtiff库的问题的答复
- ProgressBar-style属性分析
首先我们看下framework下关于进度条的style定义,如下 <style name="Widget.ProgressBar"> <item name=&qu ...
- 数据集 —— ground truth 数据集
1. matlab 自带含 ground truth 数据集 %% 加载停车标志数据到内存: data = load('stopSignsAndCars.mat', 'stopSignsAndCars ...
- Solr 读数据流程
Solr 读数据流程: 1.用户提供搜索关键词,也就是搜索语句,需要经过分词器处理以及语言处理. 2.对处理之后的关键词,搜索索引找出对应Document 即记录. 3.用户根据需要从找到的Docum ...
- ADO.net简单增删改查
嘿嘿,又到了总结了的时间,今天我们学习了ADO.net,什么是ADO.NET:ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, Sys ...
- [Angular] HttpParams
It is possible to use HttpParams to set http params. For example we have this url to make: https://a ...
- Android Material风格的应用(三)--DrawerLayout
添加抽屉导航 Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndroid Mater ...