表示される HTML を生成するメソッドを備えたクラス Foo があります。HTML にonclick
を呼び出すイベント ハンドラーが必要Foo.clickHandler
です。問題は、この特定のインスタンスの名前がわからないことFoo
です。同様に、onclick
イベントには のこのインスタンスへのアクセス方法を知る方法がありませんFoo
。ここにいくつかのコードがあります:
function Foo(){
this.nonStaticVariable='Something non-static (different for every instance of Foo).';
this.getHTML=function(){
return '<a href="javascript:void(0);" onclick="/* How do I call Foo.clickHandler? */">Click Me!</a>';
}
this.clickHandler=function(){
alert(nonStaticVariable);
}
}
非静的関数のポイントは、 がonclick
の正しいインスタンスを呼び出す必要があることを示すことですFoo
。
Foo
を含む変数名を含む文字列を に渡すことを考えましたFoo
が、これは反 OOP のようです:
function Foo(container){
this.container=container;
this.nonStaticVariable='Something non-static (different for every instance of Foo).';
this.getHTML=function(){
return '<a href="javascript:void(0);" onclick="'+container+'.clickHandler();">Click Me!</a>';
}
this.clickHandler=function(){
alert(nonStaticVariable);
}
}
var fooInstance=new Foo('fooInstance');
何を指示してるんですか?
私は jQuery ソリューションにもオープンです。