gpt4 book ai didi

javascript - 匿名函数之间的区别

转载 作者:行者123 更新时间:2023-11-29 10:21:39 25 4
gpt4 key购买 nike

我正在阅读更多开源 javascript 框架并找到更多创建匿名函数的方法,但有什么不同的最佳方法?

(function() {
this.Lib = {};
}).call(this);

(function() {
var Lib = {}; window.Lib = Lib;
})();

(function(global) {
var Lib = {}; global.Lib = Lib;
})(global);

最佳答案

(function() {
this.Lib = {};
}).call(this);

定义被调用对象的 Lib 属性,并立即在 this 上调用,通常是 window。它可能会引用拥有调用它的方法的对象。

(function() {
var Lib = {}; window.Lib = Lib;
})();

定义 windowLib 属性,无论它在哪里被调用(尽管它也被立即调用)。

(function(global) {
var Lib = {}; global.Lib = Lib;
})(global);

定义传递给函数的对象的 Lib 属性。它会立即被调用,但会导致错误,除非您在当前范围内为 global 定义了一个值。您可以将 window 或一些命名空间对象传递给它。


这些实际上并不是定义“匿名函数”的不同方式,它们都使用标准方式来实现。这些是为全局(或有效的全局)属性赋值的不同方法。从这个意义上说,它们基本上是等价的。

例如,更重要的是,他们如何定义返回/构建/公开的对象的方法和属性(即,他们如何构建 Lib 本身)。

所有这些函数都返回 undefined 并且只有第一个可以有效地用作构造函数(使用 new),所以看起来它们仅此而已比框架的初始值设定项。

关于javascript - 匿名函数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10575558/

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