点击右上方红色按钮关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
首先,with语句的本意是提供一个访问深层嵌套对象成员的快捷方式。
一,先搞清with语句的作用
一点都不难理解,下面来看一例子:
这个例子比较简单,实例化一个构造函数。然后用with将它的属性输出来,同时在with语句中修改属性名称。
输出一:小郑 100 body
输出二:小郑
可以看出,修改属性成功,with中也将对象的属性都直接方法成功。然而,糟糕的是,当设置新成员属性时,它的行为就会变得非常糟糕。
二,有点糟糕的问题
如下代码:
在with语句里我添加了一个属性weight,我本意是想给这个people对象添加一个属性。然而却没有添加成功。
输出一:小郑 100 80
输出二:undefined
最后总结建议:
出于这种问题,所以永远不要使用with语句,而用var去代替它。其实JSLint不期望看到with语句。
閱讀更多 小鄭搞碼事 的文章