深入浅析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_01_理解内存分配原理分析
Oct 11 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
Jan 09 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
Feb 13 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
Jul 22 Javascript
AngularJS基础 ng-list 指令详解及示例代码
Aug 02 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
Jan 08 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
vue路由的配置和页面切换详解
Sep 09 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
php 表单数据的获取代码
2009/03/10 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
jquery api参考 visualjquery 中国线路 速度快
2007/11/30 Javascript
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
微信小程序 Video API实例详解
2016/10/02 Javascript
vue.js项目nginx部署教程
2018/04/05 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Python多继承顺序实例分析
2018/05/26 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Python交互式图形编程的实现
2019/07/25 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
个人应聘自我评价分享
2013/11/18 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
《木笛》教学反思
2014/03/01 职场文书
小学三年级学生评语
2014/04/22 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
食品安全主题班会
2015/08/13 职场文书
Golang 实现WebSockets
2022/04/24 Golang