javascript之with
2017-01-10 00:00
10 查看
说起js中的with关键字,很多小伙伴们的第一印象可能就是with关键字的作用在于改变作用域,然后最关键的一点是不推荐使用with关键字。听到不推荐with关键字后,我们很多人都会忽略掉with关键字,认为不要去管它用它就可以了, 但还是会经常碰到。
一、基本说明
在js高级程序设计中是这样描述with关键字的:with语句的作用是将代码的作用域设置到一个特定的作用域中,基本语法如下:
使用with关键字的目的是为了简化多次编写访问同一对象的工作,比如下面的例子:
这几行代码都是访问location对象中的属性,如果使用with关键字的话,可以简化代码如下:
在这段代码中,使用了with语句关联了location对象,这就以为着在with代码块内部,每个变量首先被认为是一个局部变量,如果局部变量与location对象的某个属性同名,则这个局部变量会指向location对象属性。
注意:在严格模式下不能使用with语句。
二、with关键字的弊端
前面的基本说明中,我们可以看到with的作用之一是简化代码。但是为什么不推荐使用呢?下面我们来说说with的缺点:
1、性能问题
2、语义不明,调试困难
..
一、基本说明
在js高级程序设计中是这样描述with关键字的:with语句的作用是将代码的作用域设置到一个特定的作用域中,基本语法如下:
with (expression) statement;
使用with关键字的目的是为了简化多次编写访问同一对象的工作,比如下面的例子:
var qs = location.search.substring(1); var hostName = location.hostname; var url = location.href;
这几行代码都是访问location对象中的属性,如果使用with关键字的话,可以简化代码如下:
with (location){ var qs = search.substring(1); var hostName = hostname; var url = href; }
在这段代码中,使用了with语句关联了location对象,这就以为着在with代码块内部,每个变量首先被认为是一个局部变量,如果局部变量与location对象的某个属性同名,则这个局部变量会指向location对象属性。
注意:在严格模式下不能使用with语句。
二、with关键字的弊端
前面的基本说明中,我们可以看到with的作用之一是简化代码。但是为什么不推荐使用呢?下面我们来说说with的缺点:
1、性能问题
2、语义不明,调试困难
..
相关文章推荐
- (续三)Asynchronous JavaScript and XML (AJAX) with Java 2 Enterprise Edition
- CallAspxPageWithJavaScript
- Object-Oriented Programming with JavaScript, Part I: Inheritance(RT)
- Debug JavaScript in JSP or PHP Pages with Visual Studio 2008
- Controlling Font Size With Javascript
- javascript下with 的简化代码写法
- Extending CuteEditor with its JavaScript API
- JavaScript: Create Advanced Web Applications With Object-Oriented Techniques
- JavaScript中的this、with的用法
- Using JavaScript Along with ASP.NET
- print control with css and javascript
- Expand querystring in URL with JavaScript
- The "with" keyword in Javascript
- Drag and drop with Javascript
- Using JavaScript Along with ASP.NET
- Javascript 网页开发—体验式学习教程(3)Programing with D O M
- 多附件上传组件代码(Add and Remove HTML elements dynamically with Javascript)
- Using FCKeditor with JavaScript
- Javascript 中的 with 用法
- Ajax with ASP.NET--含常用javascript(转)