【发布时间】:2020-01-17 16:12:25
【问题描述】:
这是当前的遗留代码
$('#container input[type="number"], #container input[type="text"]').replaceWith(function () {
return $(`<p class="readonly" id="${$(this).prop('id')}">${$(this).val()}</p>`).append($(this).contents());
});
我需要进行一些清理和重构,并希望对其进行现代化改造,但 replaceWith 似乎没有参数可以用来在我们使用它的地方替换“this”,例如 $(这个).prop。我认为它应该是 event.currentTarget 但这不起作用(或者我的实现可能是错误的)
【问题讨论】:
-
所以,第一个问题。为什么?如果您的逻辑是使用
this编写的,并且它有效,为什么要切换到箭头函数?箭头函数可以接受传递给它们的参数并使用它们。我只是有点困惑,为什么你要在它已经工作的时候对其进行重构。 -
这能回答你的问题吗? Can you bind 'this' in an arrow function?
-
我想重构它主要是因为样式的原因。我们的 linter 设置将其标记为“意外的 'this'
标签: jquery ecmascript-6