Страницы

Поиск по вопросам

пятница, 19 октября 2018 г.

Стоит ли функцию как-либо называть или оставить анонимной?

Есть такой код:
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);

Комментариев нет:

Отправить комментарий