首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpalRB常数

OpalRB常数
EN

Stack Overflow用户
提问于 2014-09-07 21:17:48
回答 1查看 129关注 0票数 1

在我使用OpalRB (编译器)的一个项目中,我想知道一些事情:当您在Opal中创建常量时,如下所示:

代码语言:javascript
复制
ONE = 1

..。这本质上和说这是JavaScript一样吗?:

代码语言:javascript
复制
const ONE = 1;

我问这个问题的原因是,JS中的const关键字在每个浏览器中并不总是得到适当的支持,因此,我对在Opal中使用常量有些谨慎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-07 22:29:06

..。这和说这是JavaScript本质上是一样的吗?

不不是的。const in JavaScript使变量忽略任何重分配,并保留其原始值。在Ruby中,常量在重新分配时会发出警告,但实际上得到了重新分配。

下面是Opal编译Ruby中的ONE=1的方式:

代码语言:javascript
复制
$opal.cdecl($scope, 'ONE', 1);

正如您所看到的,常量不是像局部变量那样作为变量存储的,而是在作用域对象内部存储的。

如果已经声明了cdecl,那么ONE函数可以做它想做的任何事情。然而,Opal的开发人员似乎选择在重新分配常量时不显示警告。尝试 (使用这个网页并查看编译器是如何工作的总是很有趣的)。

因此,Opal编译的Ruby中的常量不是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25714871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档