gpt4 book ai didi

javascript - 这个 JavaScript 模式是怎么回事?

转载 作者:行者123 更新时间:2023-12-02 23:27:48 25 4
gpt4 key购买 nike

我看到了这个模式:

Money = (function() {
function Money(rawString) {
this.cents = this.parseCents(rawString);
}
});

在此CoffeeScript screencast preview 。 (截屏视频的主页是here。)

现在,我不明白这种模式。有一个 Money 函数包含一个 Money 函数。那是关于什么的?

有人能解释一下吗?

最佳答案

正如所引用的,除了可以从 window 对象中删除外部 Money 符号之外,该模式没有任何意义(IE7 及更低版本除外,但这是另一个问题)故事),因为它是 window 的普通(隐式)属性(而不是 var 或从函数声明派生的符号)。但即便如此,外部的 Money 符号接收的函数绝对不执行任何操作。会不会被错误引用?

例如,这是一个相当标准的模式:

Money = (function() {
var someCompletelyPrivateVariable;

function doSomethingCompletelyPrivate() {
}

function Money(rawString) {
this.cents = this.parseCents(rawString);
}

return Money;
})();

这就是模块模式,它让您拥有完全私有(private)的变量和函数(均如图所示),同时只有一个公共(public)符号。但我必须进行相当多的编辑才能创建它(最重要的编辑是末尾的 return Money; 以及在匿名函数之后添加 ()所以我们调用它而不是仅仅定义它。

关于javascript - 这个 JavaScript 模式是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998179/

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