2017-07-22 15 views
-2
1. var a = { 
      arr:[], 
      method:function method(){ 
        console.log(this.arr)} //this is undefined 
      } 
2. var a = arr:[], 
      method:function(){ 
        console.log(this.arr)} //this gives a 
      } 

thisコンテキストが最初の例で失われた理由を誰かが私に説明できますか?var a = {arr:[]、メソッド:関数メソッド(){console.log(this.arr)}}とvar a = {arr:[]、メソッド:function(){console.log(this .arr)}}

+2

いいえ、それはありません。唯一の違いは、最初の*メソッドの中で* method *を呼び出すことができることです。... –

+0

あなたには例が全くありません。問題を再現するユースケースを示してください。 – Teemu

+2

'this'コンテキストが失われると思いますか?詳細については、Googleの「JavaScript関数式」を参照してください。 –

答えて

0

最初のものは名前付き関数式で、2番目のものは匿名です。スタックトレースの方が最初の方が良いでしょう。

関連する問題