1

JavaScript クラスに onclick イベントを含めたいのですが、onclick はクラス内の関数であるため、this変数が正しく機能しません。

thisonclick 関数から変数を変更/出力するにはどうすればよいですか?

img = new image();

function image() {
    this.width = 400;
    this.height = 600;
    document.getElementById('button').onclick = function()
    {
        alert(this.width); // alerts undefined
    };
}

ここで JSfiddle を参照してください: http://jsfiddle.net/ZghRv/

4

2 に答える 2

1

thisbind() を使用して、 bind() に渡すオブジェクトに設定される新しい関数を作成できます。

img = new image();

function image() {
    this.width = 400;
    this.height = 600;
    document.getElementById('button').onclick = (function()
    {
        alert(this.width); // alerts undefined
    }).bind(this);  // <---  Add bind() here to pick the value of 'this' inside onclick
}

詳細とインタラクティブな例については、JavaScript 関数のバインドを確認してください。

于 2013-09-18T03:28:05.047 に答える
0

外側を参照することもできますthis

更新されたフィドル:

http://jsfiddle.net/ZghRv/3/

于 2013-09-18T03:29:39.977 に答える