node定义常量字符串
发布于 18 小时前 作者 calidion 124 次浏览 来自 分享

很多时候, 我们会希望定义一个常量, 这个常量的名字与他的字符值是一样的。 在node里并没有直接的解决方案。 下面提供一个小的函数库来帮助你解决这个问题。 函数库叫consto.

npm install consto

安装即可。

代码如下:

var consto = require('consto');


//Upper Style, default style
var co = consto(['rain', 'sea', 'key']);
// > co
// { RAIN: 'RAIN', SEA: 'SEA', KEY: 'KEY' }

//Free Style, by specifiy a true
var fs = consto(['Rain', 'sea', 'KEY'], true);
// > fs
// { Rain: 'Rain', sea: 'sea', KEY: 'KEY' }

8 回复

这个达不到常量的效果吧?

ES6 的Symbol可以解决这问题吧?

很多时候, 我们会希望定义一个常量, 这个常量的名字与他的字符值是一样的。

很多时候, 我们会希望定义一个常量, 这个常量的名字与他的字符值是一样的。

@klesh 模拟常量。ES6的const也是鸡肋。所以自己动手比较好一点。

我看了下代码,

  1. co是一个普通的object实例,比如co.Rain 可以被修改,达不到常量的效果。反而 const Rain = ‘Rain’ 是不能修改,才是真正的常量
  2. 如果是敲错名字的话,co.Rian 这样是不会有错误提示的,反而如何是 const 会有提示。 像这种问题,通过编辑器解决更好,sublime/textmate 之类做个插件应该不难

@klesh 如果通过const定义Rain是常量,如何共享这个常量到别的文件?

const a = {}; a.key = ‘aaa’; 目前并不是不可修改的。

这里的常量理解成是一种常量标识会更好。

主要模块的目标是当你需要定义一个字符串,并且需要有一个跟这个字符串同名的KEY时使用的。

同时作为对象,更加方便一些。

回到顶部