javascript - Color[Color["Red"] = 0] = "Red";怎么解释?
伊谢尔伦
伊谢尔伦 2017-04-11 11:55:16
[JavaScript讨论组]
enum Color {Red, Green, Blue};
var Color;
(function (Color) {
    Color[Color["Red"] = 0] = "Red";
    Color[Color["Green"] = 1] = "Green";
    Color[Color["Blue"] = 2] = "Blue";
})(Color || (Color = {}));

这是typescript里enum类型的源码,看不懂Color[Color["Red"] = 0] = "Red"这什么意思?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
高洛峰

typescript的枚举类型,这是为了在编码的时候不出现魔术数使用的一种方式,你可以理解成

var color = {
    red: 0,
    0: 'red',
    green: 1,
    1: 'green'
}

var userChooseColorData = 0 // 用户选了一个编码为0的颜色
if(userChooseColor === color.red){
    // 通过color.red能够让代码更加直观,即使其他程序员不了解0,1,2分别代表什么颜色,也能通过这种方式明白你在代码里面像表达的意思
    // 同理当我们需要得到具体颜色的时候可以使用 color[userChooseColorData] 得到
    // 以上理论出自<<代码整洁之道>>
}

PS:最后补充,编译之后的代码基本上是给机器来读的,我们应该花更多的时间去理解编译之前的源代码,理解这样写的原理,以及用法,等到理解了用法,再去看编译后的源代码会觉得豁然开朗

怪我咯
Color[0] = "Red";
Color.Red = 0;

没什么意思,就是让名字(Red)和数值(0)可以互相查找。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号