翻看更好技术部的Formbuilder库中,我看到了几种字符串映射到大写字母对象属性的情况,就像模仿 JavaScript 中的常量一样。以下内容在 main.coffee :
mappings:
SIZE: 'field_options.size'
UNITS: 'field_options.units'
LABEL: 'label'
FIELD_TYPE: 'field_type'
...
然后,这些“常量”大部分被插入到构成 View 的字符串中。来自 paragraph.coffee :
view: """
<textarea class='rf-size-<%= rf.get(Formbuilder.options.mappings.SIZE) %>'></textarea>
"""
除了不必使用文字之外,这样做是否还有性能或架构优势?看起来仅仅使用字符串会更省力,甚至更快。
最佳答案
穷人的声明安全。
rf.get('field_optons.size')
// => undefined (I assume, depends on rf.get)
rf.get(Formbuilder.optons.mappings.SIZE)
// => TypeError: Cannot read property 'mappings' of undefined
第一种情况下的拼写错误会让您的代码以错误的值(未定义
)继续进行。
第二种情况下的拼写错误,除非是在最后一个组件中,否则将中止您的程序。
关于javascript - 将 JavaScript 字符串映射到 "constant"有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26418099/