为啥这样不能给对象赋属性
with 语句内的直接访问只对对象上已经有的属性起作用,它是不会增加新的属性的。要增加属性你需要完整的写 a.age = 17 ,然后才能用 age 来访问。
关于 spec 的部分,spec 不是给一般程序员读的,所以你理解有误也是正常。如果一定要读,得仔细再仔细,不要漏掉每一个步骤。比如,with 语句是会插入一个 object env record,但你漏掉了 block statement 会创建一个新的 lex env。而 with 语句后面跟的那对大括号就是一个 block statement。
■网友
泻药
啊……这个问题 ……
你看啊
“with语句会创建对象型环境记录项,并作为当前执行环境的词法环境组件”
说明这个组件它还是对象型环境记录
对象型境记录本身还绑着 identifier name 形式的对象属性呢
let 一下规范只说
“把标识符绑定到当前执行环境的词法环境组件上”
【为啥这样不能给对象赋属性】 人家没说 let const 能把它 CreateMutableBinding (CreateImmutableBinding)到对象环境记录自身绑定表里么……
■网友
→_→你确定代码块和你的 with 上下文是一个概念,如果让你去设计,你也不会这样设计呀~不过你可以直接操作 a 对象。还有 let const 不是拿来搞这个的。
推荐阅读
- 钟南山:随着冬天的到来,内地疫情防控不能松懈
- 『黄金时间』节水工作一刻不能放松! 黄金时间丨水乡江苏也缺水
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- |艾滋病“后悔药”你知道吗?高危性行为后,这样做能救你一命
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 你为啥从窝窝商城离职?
- 电池|谁说家用紧凑SUV不能更运动?全新领克01让你“打脸”了
- 王者荣耀李白能不能出肉
