Javascriptのコンストラクタ内のjQueryイベントハンドラからメンバを参照する方法はありますか？


具体的には以下です。

[code]

    var Sample = function(str){
        this.str = str;
    
        $('#btn').click(function(){
             alert(str);
        });
    }
    
[/code]

クリックイベントハンドラからsrtを出力します。




イベントハンドラの中で`this.str`のように使いたいという事でしょうか？

この場合、古典的な方法として、`this`を変数に代入しておいてから使う方法があります。  
一般的には`self`という変数名を使います。

[code]

    var Sample = function(str){
        this.str = str;
    
        var self = this;
        $('#btn').click(function(){
             alert(self.str);
        });
    }
    Sample("aaa");
    
[/code]

もう一つの方法として、`bind()`を使用する方法があります。  
[Function.prototype.bind() - JavaScript |
MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)  
bind()の第一引数で指定したオブジェクトが、そのfunction内でのthisになります。

[code]

    var Sample = function(str){
        this.str = str;
    
        $('#btn').click(function(){
             alert(this.str);
        }.bind(this));
    }
    Sample("bbb");
    
[/code]




イベントハンドラの中で`this.str`のように使いたいという事でしょうか？

この場合、古典的な方法として、`this`を変数に代入しておいてから使う方法があります。  
一般的には`self`という変数名を使います。

[code]

    var Sample = function(str){
        this.str = str;
    
        var self = this;
        $('#btn').click(function(){
             alert(self.str);
        });
    }
    Sample("aaa");
    
[/code]

もう一つの方法として、`bind()`を使用する方法があります。  
[Function.prototype.bind() - JavaScript |
MDN](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)  
bind()の第一引数で指定したオブジェクトが、そのfunction内でのthisになります。

[code]

    var Sample = function(str){
        this.str = str;
    
        $('#btn').click(function(){
             alert(this.str);
        }.bind(this));
    }
    Sample("bbb");
    
[/code]

