在学习如何编写一个好的JavaScript插件时,我正在研究Twitter Bootstrap(使用jQuery)中的JavaScript文件.
该崩溃插件的开头有这样的代码:
var Collapse = function (element, options) { this.$element = $(element) this.options = $.extend({}, Collapse.DEFAULTS, options) this.transitioning = null if (this.options.parent) this.$parent = $(this.options.parent) if (this.options.toggle) this.toggle() } Collapse.DEFAULTS = { toggle: true }
var Collapse = function
似乎是设置一些变量的构造函数,包括对象this.options
.这似乎是默认选项和传递给函数的自定义选项的合并,因此自定义选项会覆盖/添加到默认值.
这就是我的理解 - 我不明白为什么包含默认选项的对象名称是用大写字母写的:Collapse.DEFAULTS
?这是不变的吗?
所有大写标识符在JavaScript中没有特殊含义.有些人使用它们来表明应该将值视为常量,但语言中没有任何内容实际上阻止它们被覆盖.