由typescript 的枚举引发的思考
截图中右侧是编译成js后的代码,在浏览器控制台中打印出来结果,Color居然是 {0: "Red", Red: 0}
一句 Color[Color["Red"] = 0] = “Red” ,对Color设置了两个属性’0’,’Red’?,经过查找定位到【 赋值表达式】
参考 由ES规范学JavaScript(二):深入理解“连等赋值”问题 这篇文章找到些思路
套用文章中描述的js引擎计算赋值表达式的步骤,注意步骤4 是思路来源重点:
- 先从左侧表达式 Color[Color["Red"] = 0] 入手
- 计算左侧表达式中的Color["Red"] = 0,(根据截图步骤4)运算后会返回 0;同时此时 Color 为 { Red: 0 }
- 左值外层为 Color[0] (0为上一步返回的结果)
- 计算右侧表达式结果为’Red’
- 将’Red’ 赋给 Color[0],所以最终为 {0: "Red", Red: 0} ?
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!