在学习如何编写优秀的JavaScript插件时,我正在研究Twitter Bootstrap(使用jQuery)中的JavaScript文件。
collapse plugin在开头有这段代码:
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
?这有点像常数吗?
答案 0 :(得分:5)
所有大写标识符在JavaScript中没有特殊含义。有些人使用它们来表示值应该被处理,好像它是一个常量,但语言中没有任何东西实际上阻止它们被覆盖。