2016-05-03 16 views
0

にオブジェクト内の関数を呼び出すと、この例に出くわした:はES6をしようES6

var bob = { 
     _name: "Bob", 
     _friends: ["Pete", "Joe", "Larry"], 
     printFriends() { 
     this._friends.forEach(f => 
      console.log(this._name + " knows " + f)); 
     } 
    } 

コンソールロギングbob.printFriends()は未定義与えます。

+1

コードを正しく翻訳してもよろしいですか?それは私のために働いているhttp://esnextb.in/?gist=87892ce1aac47ec0ff90540d0c546345 –

+0

'printFriends'は' undefined'を返すので、結果は正しいと思われますか? –

答えて

1

あなたのコード

var bob = { 
    _name: "Bob", 
    _friends: ["Pete", "Joe", "Larry"], 
    printFriends() { 
    this._friends.forEach(f => 
     console.log(this._name + " knows " + f)); 
    } 
} 
bob.printFriends(); 

出力

"Bob knows Pete" 
"Bob knows Joe" 
"Bob knows Larry" 
=> undefined 

undefinedの戻り値が表示される理由は、printFriendsreturnというステートメントが含まれていないためです。

+0

Ref:http://stackoverflow.com/questions/7187114/when-to-use-return-and-what-happens-to-returned-data – Deke

0

私のために働いています。このフィドルを見て、コンソールを確認してください。トランスバータが正しく構成されていない可能性があります。

https://jsfiddle.net/e7rb9e4o/

bob.printFriends(); 

出力:

Bob knows Pete 
Bob knows Joe 
Bob knows Larry