深入浅析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 相关文章推荐
window.open()弹出居中的窗口
Feb 01 Javascript
Extjs学习笔记之二 初识Extjs之Form
Jan 07 Javascript
jQuery Tab插件 用于在Tab中显示iframe,附源码和详细说明
Jun 27 Javascript
jquery中EasyUI使用技巧小结
Feb 10 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
Mar 14 Javascript
Vue.js第四天学习笔记
Dec 02 Javascript
JS删除数组里的某个元素方法
Feb 03 Javascript
Vue匿名插槽与作用域插槽的合并和覆盖行为
Apr 22 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
使用js实现一个简单的滚动条过程解析
Sep 10 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
Nov 13 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 24 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封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
Nodejs中crypto模块的安全知识讲解
2018/01/03 NodeJs
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python如何求圆的面积
2020/07/01 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
汉语言文学毕业生求职信
2013/10/01 职场文书
高级销售员求职信
2013/10/25 职场文书
抄作业检讨书
2014/02/17 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
校园活动策划方案
2014/06/13 职场文书
地道战观后感500字
2015/06/04 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书