深入浅析javascript函数中with


Posted in Javascript onOctober 28, 2018

/*js函数中with函数的用法分析

定义 方便用来引用某个对象中已有的属性

但是不能用来给对象添加属性 要给对象创建

新的属性 必须明确的引用该对象*/

代码格式

with(object)
 statements

 object:新的默认对象

statements:一个或多个语句 oject是该语句的默认对象

with 语句通常用来缩短特定情形下必须写的代码量。

x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10) y = Math.tan(14 * Math.E)
 with (Math){ x = cos(3 * PI) + sin (LN10) y = tan(14 * E)}
 function valiadate_reauired

简单的来说就是with相当于一种速写方式 在指定的代码区域,通过节点名称就能调用对象

 普通写法:

var car={
 size: suv,
 color:yellow,
 money:1500
 };

其他类调用

function={
 car car =new car();
 car.size=suv;
 car.color=yellow;
 car.money=1500;
 }

使用with的写法:省去了car.

with(car){
size=suv;
 color=yellow;
 money=1500; 
 }

使用with语句关联了car对象,解析时 with代码块的内部把每个变量都认为是局部变量;

如果局部变量里与car对象属性(例如size)属性同名,这个局部变量就会指向car里面的属性;

 缺点1

 with会自动在全局作用域创建一个全局变量,在严格模式下,会抛出ReferenceError 异常。

withwith 会在运行时修改或创建新的作用域,以此来欺骗其他在书写时定义的词法作用域。

 缺点2

 with在相同条件下比不使用它慢了很多,具体的原因是因为js在运行之前要进行预编译,其中有些优化依赖于能够根据代码的词法进行静态分析,并预先确定所有变量和函数的定义位置,才能在执行过程中快速找到标识符。 

但如果引擎在代码中发现了 with,它只能简单地假设关于标识符位置的判断都是无效的,因为无法知道传递给 with 用来创建新词法作用域的对象的内容到底是什么。所以js就不会优化

 总结

以上所述是小编给大家介绍的javascript函数中with,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
Mar 22 Javascript
jQuery 第二课 操作包装集元素代码
Mar 14 Javascript
location.href语句与火狐不兼容的问题
Jul 04 Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 Javascript
jquery dialog获取焦点的方法
Feb 09 Javascript
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
JS实现图片转换成base64的各种应用场景实例分析
Jun 22 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
Feb 11 Javascript
一次微信小程序内地图的使用实战记录
Sep 09 Javascript
vue el-table实现自定义表头
Dec 11 Javascript
Three.js实现雪糕地球的使用示例详解
Jul 07 Javascript
微信小程序动画(Animation)的实现及执行步骤
Oct 28 #Javascript
又拍云 Node.js 实现文件上传、删除功能
Oct 28 #Javascript
javascript中函数的写法实例代码详解
Oct 28 #Javascript
vue项目中实现图片预览的公用组件功能
Oct 26 #Javascript
Node.js 使用axios读写influxDB的方法示例
Oct 26 #Javascript
vue中使用protobuf的过程记录
Oct 26 #Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 #Javascript
You might like
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
PHPCMS的使用小结
2010/09/20 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
php文档更新介绍
2011/07/22 PHP
php实现的漂亮分页方法
2014/04/17 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
常用的js方法合集
2017/03/10 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[45:59]EG vs OG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
简单谈谈Python中的json与pickle
2017/07/19 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
python实现抖音点赞功能
2019/04/07 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
PatPat德国:妈妈的每日优惠
2019/10/02 全球购物
电子专业推荐信范文
2013/11/18 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
高一英语教学反思
2014/01/22 职场文书
实用的简历自我评价
2014/03/06 职场文书
《忆江南》教学反思
2014/04/07 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
校园广播稿范文
2015/08/19 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
三好学生竞选稿范文
2019/08/21 职场文书