深入浅析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实现翻页功能(附效果图)
Feb 16 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
收藏AngularJS中最重要的核心功能
Jul 09 Javascript
vue中各组件之间传递数据的方法示例
Jul 27 Javascript
微信小程序 页面滑动事件的实例详解
Oct 12 Javascript
angular2系列之路由转场动画的示例代码
Nov 09 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
vue监听用户输入和点击功能
Sep 27 Javascript
vue quill editor 使用富文本添加上传音频功能
Jan 14 Javascript
JS常用排序方法实例代码解析
Mar 03 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
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
javascript 特殊字符串
2009/02/25 Javascript
jQuery的学习步骤
2011/02/23 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
javascript中 try catch用法
2015/08/16 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
2016/12/20 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
js实现五星评价功能
2017/03/08 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
介绍Python中的文档测试模块
2015/04/28 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
Flask框架搭建虚拟环境的步骤分析
2019/12/21 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
汉语专业应届生求职信
2013/10/01 职场文书
旅游管理毕业生自荐书
2014/02/02 职场文书
学生评语大全
2014/04/18 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
防火标语大全
2014/10/06 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
党员年终个人总结
2015/02/14 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
大学运动会通讯稿
2015/07/18 职场文书
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python