gpt4 book ai didi

javascript - Coffeescript 中带有隐藏变量的模块模式

转载 作者:可可西里 更新时间:2023-11-01 01:37:58 24 4
gpt4 key购买 nike

深入研究 Coffeescript 我正在尝试将我的 Javascript 文件移植到 Coffeescript。

关于这个,我有一个与 Doulgas Crockford 的模块模式相关的问题(闭包绑定(bind)以保持变量“私有(private)”)

因此我的问题是:以下 JS 的等效 Coffeescript 会是什么样子:

var test = function () { var hidden = 'open'; return { open: hidden }; }();

分别来说,在 Coffeescript 中是否有针对此模式的不同/更好的方法?

最佳答案

我认为最好的方法是借助 do 关键字(它的存在主要是为了捕获循环中的值——参见我的 PragPub article),将您的示例逐字翻译成 CoffeeScript:

test = do ->
hidden = 'open'
open: hidden

编译为

var test;
test = (function() {
var hidden;
hidden = 'open';
return {
open: hidden
};
})();

除格式化外,它与您的代码相同。 (CoffeeScript 编译器自动将所有 var 声明放在其范围的顶部,这使得通过查看 JavaScript 输出可以轻松确定变量的范围。)

关于javascript - Coffeescript 中带有隐藏变量的模块模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6107705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com