gpt4 book ai didi

javascript - `exports`是如何用来初始化Backbone的?

转载 作者:行者123 更新时间:2023-12-02 19:03:05 25 4
gpt4 key购买 nike

  // Save a reference to the global object (`window` in the browser, `exports`
// on the server).
var root = this;

什么是导出?我可以理解将 root.Backbone 设置为对象文字,因为现在可以向其添加属性。

但是,上面源代码中的注释意味着 this 指向浏览器中的窗口并在服务器上导出?

这是真的吗?

我问的原因是因为这里的代码:

  var Backbone;
if (typeof exports !== 'undefined') {
Backbone = exports;
} else {
Backbone = root.Backbone = {};
}

为什么要在命名空间之外定义所有模块(导出),从而违背了包含该库的闭包的目的。

最佳答案

exportsCommonJS 中导出的对象的名称。模块格式,主要由 node.js 使用。

在 CommonJS 中,每个 javascript 源文件都是一个模块,您分配给 exports 的任何内容都将是该文件的“返回值”。所以 Backbone 源代码中的行:

Backbone = exports;

说:“将 Backbone 定义为该模块的导出对象。”稍后,当他们将 Backbone.Model 等属性附加到 Backbone 根对象时,它们会附加到导出值。

关于javascript - `exports`是如何用来初始化Backbone的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14591384/

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