- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在尝试理解 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/
当运行 scala.util.Random().nextInt(3) 81 次时,我看到如下结果(Java 开发人员,请参阅 edit 了解这之间的关系): 200010202002112102222
在使用 native 应用程序在混合模式 C++/CLI 中调试时,我遇到了进程挂起问题。这是无法忍受的,我的调试几乎 70% 都会发生这种情况,我需要一次又一次地重新启动该过程。 是否有任何修补程序
我不知道这是一个错误还是某种误用/错误配置。希望有人能帮忙。谢谢! 如果我更改模块或 list 目录中的文件,通常会导致错误,大部分是以下类型 无法找到节点上的类 在节点上找不到定义类 当 Puppe
我是一名优秀的程序员,十分优秀!