js中with语句的用法及其作用

申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步;

前两天读《javascript高级程序设计》一书,遇到with一词;之前尽全然不知。所以细细读了一番,,书中强调其作用是,延长作用域链;不熟悉的人可能听起来有点怪,ok,看下他是怎么延长作用域链的 

js中with语句的用法及其作用_第1张图片
一切文字解释都是那么苍白无力

在with这个块中你可以直接使用People中的属性,所以对于延长作用域链我是这么理解的 ,在yanChang这个局部作用域中,又多了一级----with中的作用域。但有一个特点是,with块中可以直接访问People的一级属性;

所以省去了我们用 . 访问对象属性的这种作法;所以就我而言,我更认为这是延长作用域和释放变量;

但是到目前为止我还没有找到js中使用with语句好处的更佳答案,倒是有一些值得吐槽的地方,比如频繁的使用with,其()中的变量有特别多的属性,那么在该with块中,浏览器要一遍一遍的去遍历该变量,验证是否有这个属性,所以使用多了会不会对性能造成一定的损失?

如下大概是对with的正确用法?但是却没有人这么写css的!

js中with语句的用法及其作用_第2张图片
这么写css你见过吗?

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

你可能感兴趣的:(js中with语句的用法及其作用)