私は次のパターンを理解しようとしています:
// 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