javascript - Color[Color["Red"] = 0] = "Red";怎么解释?

查看:185
本文介绍了javascript - Color[Color["Red"] = 0] = "Red";怎么解释?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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"这什么意思?

解决方案

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

这篇关于javascript - Color[Color[&quot;Red&quot;] = 0] = &quot;Red&quot;;怎么解释?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆