我试图理解以下模式:
// https://github.com/twitter/bootstrap/blob/master/js/bootstrap-collapse.js
$.fn.collapse = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('collapse')
, options = typeof option == 'object' && option
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
}
$.fn.collapse.defaults = {
toggle: true
}
它看起来像collapse
一个函数对象。那么,为什么defaults
可以作为属性添加到collapse
?
以下(jsFiddle) 片段尝试向函数对象添加新属性,但无济于事。它是什么?
var my_object = function () {
alert('Hello World!');
};
my_object.name = 'my_object';
console.log(my_object.name); // prints an empty string