申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步;
前两天读《javascript高级程序设计》一书,遇到with一词;之前尽全然不知,没用过,,丢人了。所以细细读了一番,,书中强调其作用是,延长作用域链;不熟悉的人可能听起来有点怪,ok,看下他是怎么延长作用域链的

在with这个块中你可以直接使用People中的属性,所以对于延长作用域链我是这么理解的 ,在yanChang这个局部作用域中,又多了一级----with中的作用域。但有一个特点是,with块中可以直接访问People的一级属性;
所以省去了我们用 . 访问对象属性的这种作法;所以就我而言,我更认为这是延长作用域和释放变量;
但是到目前为止我还没有找到js中使用with语句好处的更佳答案,倒是有一些值得吐槽的地方,比如频繁的使用with,其()中的变量有特别多的属性,那么在该with块中,浏览器要一遍一遍的去遍历该变量,验证是否有这个属性,所以使用多了会不会对性能造成一定的损失?
如下大概是对with的正确用法?但是却没有人这么写css的!

所以很多人在js文章中并不提倡使用with语句。
网友评论