将JavaScript字符串映射到“常量”的优点是什么?

时间:2014-10-17 04:52:27

标签: javascript coffeescript constants formbuilder

通过更好的技术部Formbuilder库,我看到几种字符串映射到大写字母对象属性,就好像在JavaScript中模仿常量一样。以下是main.coffee

mappings:
      SIZE: 'field_options.size'
      UNITS: 'field_options.units'
      LABEL: 'label'
      FIELD_TYPE: 'field_type'
      ...

这些"常数"然后大部分内插在构成视图的字符串中。来自paragraph.coffee

view: """
    <textarea class='rf-size-<%= rf.get(Formbuilder.options.mappings.SIZE) %>'></textarea>
  """

除了不必使用文字之外,这样做是否具有性能或架构优势?似乎不会那么辛苦,如果不是更快,只是为了使用字符串。

2 个答案:

答案 0 :(得分:1)

穷人的宣言安全。

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

第一种情况下的拼写错误会导致代码的值不正确(undefined)。

第二种情况下的拼写错误,除非是在最后一部分中,否则将中止您的程序。

答案 1 :(得分:1)

Javascript没有常量,所以当你看到它时,它实际上更像是用于传递常量意图的代码约定。主要优点是您可以在代码中引用此常量十次,并且当您需要更改值时,您只需要在一个位置更改它。

编辑:常量来到ES6,现在在不同的浏览器中得到部分支持。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const