よし、まずは基本。Javascript では、関数はファースト クラス オブジェクトです。つまり、次のことができます。
var foo = function() { return 1 + 1;};
あなたができるのと同じ方法:
var foo = 5;
Javascript では、すべての真のオブジェクト (プリミティブを除くほぼすべて) にプロパティがあります。これらのプロパティは、変数に設定できる任意のものに設定できます。
var foo = {};
foo.bar = function() { return 1 + 1; }
foo.baz = 5;
オブジェクトでメソッドが使用されているのを見るときはいつでも、プロパティとして設定された関数が実行されているだけです。
jQuery の結果オブジェクト (例: $('.of')
) は単なる配列ではありませんが、Javascript オブジェクトであるため、プロパティを持つことができ、それらのプロパティは関数にすることができます。だからあなたは絶対にできる:
var fof = $('.of')
fof.foo = function() { return 1 + 1; };
fof.foo();
最後に、jQuery に似た独自のイベントの作成について質問されました。これは、jQuery を使用すると非常に簡単に実行できます。簡単な例を次に示します。
var fakeObject = {};
fakeObject.fakeMethod = function() {
// do something
$.trigger(this, 'myFakeClick');
}
var fakeObjectWatcher = {}
fakeObjectWatcher.react = function() { alert('someone did something'); };
$(fakeObject).on('myFakeClick', fakeObjectWatcher.react);
fakeObject.fakeMethod(); // triggers myFakeClick event
// fakeObjectWatcher will now alert "someone did something"