javascript之with

提及js中的with关键字,不少小伙伴们的第一印象可能就是with关键字的做用在于改变做用域,而后最关键的一点是不推荐使用with关键字。听到不推荐with关键字后,咱们不少人都会忽略掉with关键字,认为不要去管它用它就能够了, 但仍是会常常碰到。javascript

1、基本说明java

在js高级程序设计中是这样描述with关键字的:with语句的做用是将代码的做用域设置到一个特定的做用域中,基本语法以下:express

with (expression) statement;

使用with关键字的目的是为了简化屡次编写访问同一对象的工做,好比下面的例子:性能

var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

这几行代码都是访问location对象中的属性,若是使用with关键字的话,能够简化代码以下:url

with (location){
  var qs = search.substring(1);
  var hostName = hostname;
  var url = href;
}

在这段代码中,使用了with语句关联了location对象,这就觉得着在with代码块内部,每一个变量首先被认为是一个局部变量,若是局部变量与location对象的某个属性同名,则这个局部变量会指向location对象属性。
注意:在严格模式下不能使用with语句。设计

2、with关键字的弊端调试

前面的基本说明中,咱们能够看到with的做用之一是简化代码。可是为何不推荐使用呢?下面咱们来讲说with的缺点:code

一、性能问题
二、语义不明,调试困难对象

 

..ip

相关文章
相关标签/搜索