2017-02-13 11 views
-2

javascriptでオブジェクトを作成したい(クラスのようですが、私のブラウザではes5/6はサポートしていません)。私の目標はJqueryのコールバックでこの機能を取得することです。変数は、jqueryのことで、セレクタでポイントされていることをjqueryでjavascriptでオブジェクトを作成する

コード

var log = e => console.log(e); 

$(function(){ 
    var oop = new _oop(); 
}) 

var _oop = function(){ 
    this.testVariable = 0; 
    $.get(url,function(){ 
    log(this.testVariable);//undefined 
    }); 
} 

、私は「これは」これを扱うことができ代わりに「VAR」を使用し、別のアイデアを考えたことができませんでした。

が----低レベルでブラウザを満たすために2-13 ----

をサポートし、私はこのケースでは、矢印機能を使用することはできません。 私のコードの上記の矢印は、dev-mode用です。

---- supported 2-13 ---- すべてのためにit.thxを修正しました。あなたは匿名関数の内部でthisを使用しようとしているので、あなたが未定義なっている コード

var log = e => console.log(e); 

$(function(){ 
    var oop = new _oop(); 
}) 

var _oop = function(){ 
    this.testVariable = 0; 
    var cb = function(){log(this.testVariable);} 
    $.get(url,cb.bind(this)); 
} 
+0

可能性のある重複した[コールバックの内側に正しい\ 'この\'を利用するには?](http://stackoverflow.com/questions/20279484/how-to-access-the-correct-this-コールバック内) – JJJ

答えて

0

理由があります。

脂肪の矢印機能を使用してスコープを維持するには、thisを交換してください。

var log = e => console.log(e); 

$(function() { 
    var oop = new _oop(); 
}) 

var _oop = function() { 
    this.testVariable = 0; 
    $.get(url,() => { 
    log(this.testVariable); 
    }); 
} 
関連する問題