gpt4 book ai didi

javascript - 为什么图书馆的主要对象经常以大写字母开头?

转载 作者:行者123 更新时间:2023-12-03 01:50:56 26 4
gpt4 key购买 nike

目前我正在尝试理解 Backbone.js 的源代码并注意到主要 Backbone属性/对象的首字母大写:

var root = (typeof self == 'object' && self.self === self && self) ||
(typeof global == 'object' && global.global === global && global);

// Set up Backbone appropriately for the environment. Start with AMD.
if (typeof define === 'function' && define.amd) {
define(['underscore', 'jquery', 'exports'], function(_, $, exports) {
// Export global even in AMD case in case this script is loaded with
// others that may still expect a global Backbone.
root.Backbone = factory(root, exports, _, $);
});

我不明白为什么它不仅仅是 root.backbone 。我听说人们用首字母大写来命名构造函数,但在我们有工厂方法的情况下。

因此,当我们不处理库并编写简单的代码时,我们不会进行这种大写(据我在教程中看到的),并且我们不会以这种方式命名使用构造函数创建的对象:

var person = new Person("John", "Doe", 50, "blue") //not var Person

我觉得这个问题的答案可以帮助很多新手理解js脚本代码。

最佳答案

I don't understand why it's not just root.backbone.

没有任何具体原因,但使用大写名称命名库和其他全局对象是一种常见约定。它降低了名称与局部变量冲突的风险,局部变量通常以小写形式命名。

var person = new Person("John", "Doe", 50, "blue") //not var Person

在这种情况下,Person 已经作为全局变量存在!命名局部变量 Person 会与全局变量冲突,并且代码实际上根本无法工作。 (new Person 中的 Person 将被解释为引用尚未初始化的局部变量。)

关于javascript - 为什么图书馆的主要对象经常以大写字母开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418566/

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