矢印関数を使用して「正しい」を返すようにしたいですか?矢印関数を使用して「正しい」を返すようにしたい場合
let mama2 = {
children:12,
surname: true,
town: 'umuadi',
school:'imo state university',
mamaChild:() => {
if (this.surname){
return 'correct'
}else{
return 'failed'
}
}
}
let mama3 = {
children:12,
surname: true,
town: 'umuadi',
school:'imo state university',
mamaChild:function() {
if (this.surname){
return 'correct'
}else{
return 'failed'
}
}
}
この2つのコードの違いを知りたいのはなぜ私に違う結果がもたらされるかです。
このコードをコンソールで実行すると、最初のコードは「失敗」の結果を、2番目のコードは「正しい」結果を返します。
Arrow関数は 'this'のコンテキストを参照しようとしているオブジェクトではない親スコープにバインドします。これは普通の 'function()'で行われていないので、なぜ動作するのですか? –
[thisキーワードはどのように機能しますか?](https://stackoverflow.com/questions/3127429/how-does-この - キーワード - 仕事) – moon
https://derickbailey.com/2015/09/28/do-es6-arrow-functions-really-solve-this-in-javascript/ –