私は矢印関数が単なる類義語関数のショートカットだと思っています。しかし、最近私は、矢印の機能がいくつかの問題を引き起こしたという例を見つけました。ES6、arrow関数、 "this"の文脈
function refreshTable() {
$.ajax({
url: root + `/posts?userId=${userId}`,
method: 'GET'
}).then(function(data) {
for (var item of data) {
$('table.list tbody').append(`
<tr>
<td>${item.id}</td>
<td>${item.title}</td>
<td>${item.date}</td>
<td>
<a href="" data-id="${item.id}" class="getDetails">View</a> |
<a href="" data-id="${item.id}" class="getDetails">Delete</a>
</td>
</tr>
`);
}
$('.getDetails').click((e) => {
// $(this) is actually the ajax call, I can't access the "data" part
});
});
}
はしかし、これは動作します:ここでは、サンプルコードです
function refreshTable() {
$.ajax({
url: root + `/posts?userId=${userId}`,
method: 'GET'
}).then(function(data) {
for (var item of data) {
$('table.list tbody').append(`
<tr>
<td>${item.id}</td>
<td>${item.title}</td>
<td>${item.date}</td>
<td>
<a href="" data-id="${item.id}" class="getDetails">View</a> |
<a href="" data-id="${item.id}" class="getDetails">Delete</a>
</td>
</tr>
`);
}
$('.getDetails').click(function(e) {
// $(this) is the HTML element, so I can access "data"
});
});
}
はもちろん、機能を矢印にいくつかのロジックがあり、それはthis
のための別のスコープを作成します。どうしたの?矢印機能(HTMLにアクセスする)で同じことを達成できますか、この場合は不可能ですか?
ありがとうございます!
可能性の重複[アロー機能とこの](http://stackoverflow.com/questions/28798330/arrow-functions- and-this) –
JavaScriptで「=>」(等号とそれ以上のものから形成される矢印)の意味は何ですか?](http://stackoverflow.com/questions/24900875/whats-the-meaning-矢の形をしたjav-in-the-equalsより大きい) –
誰かが悪い日ですか?コメントを残さずに良い答えを下落させる。これらが戦略的なdownvotes場合...それはあなたにそれほど多くを意味する場合は:) – Michelangelo