Есть такой код:
if (!Element.prototype.remove) {
Element.prototype.remove = function remove() { // <----
if (this.parentNode) {
this.parentNode.removeChild(this);
}
};
}
Это обычный полифилл для .remove()
Меня интересует вопрос - есть ли какой-либо смысл называть как-то функцию вот тут:
Element.prototype.remove = function remove() { ... }
или в этом смысла нет, и можно её оставить анонимной?
Element.prototype.remove = function() { ... }
Ответ
Имеет. При отладке эта функция будет выводиться в консоль в том виде, в каком она была в коде, поэтому в случае функции с именем будет сразу ясно, что это за функция. А ещё в ES6 вводится свойство name, которое в случае анонимной функции оказывается пустым.
function Smth() {}
Smth.prototype.doSmth = function doSmth() {}
Smth.prototype.doOther = function () {}
var x = new Smth();
console.log(x.doSmth);
console.log(x.doOther);
console.log(x.doSmth.name);
console.log(x.doOther.name);
Комментариев нет:
Отправить комментарий