LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

https://drewdevault.com/2021/11/16/Cash-for-leftpad.html — I will pay you cash to delete your npm module

Я могу лишь сказать, что это очевидный антипаттерн, а сам Airbnb JavaScript Style Guide, судя по всему, является эдаким подобием вики: «один посрал — второй поел». Именно потому я предпочитаю не пользоваться гайдами, если не знаю, кому за этот гайд можно будет плюнуть в харю.

А теперь вопрос: неужто у первого подхода есть какой-то тайный недостаток, вынуждающий тянуть какую-то левую библиотеку? Почему после left-pad такие штуки всё ещё популярны?

Не оскудеет IT идиотами никогда, пока в IT платят деньги.

Я, может, что-то не понимаю, но
const has = function(object, key)
и оно вроде даже работает.

> Object.prototype.hasOwnProperty = 2
2
> const has = function(object, key) {
...     return Object.prototype.hasOwnProperty.call(object, key);
... }
undefined
> console.log(has({a: 'asd'}, 'a'));
Thrown:
TypeError: Object.prototype.hasOwnProperty.call is not a function
    at has (repl:2:44)
>

Тяжелое наследие бурной молодости JS. Доходит до того, что прототип умудряются переписывать через JSON. Но это лишь повод следить за обработкой JSON, а не реализовывать функции прототипа Object и Function с нуля.

Исходная версия byko3y, :

https://drewdevault.com/2021/11/16/Cash-for-leftpad.html — I will pay you cash to delete your npm module

Я могу лишь сказать, что это очевидный антипаттерн, а сам Airbnb JavaScript Style Guide, судя по всему, является эдаким подобием вики: «один посрал — второй поел». Именно потому я предпочитаю не пользоваться гайдами, если не знаю, кому за этот гайд можно будет плюнуть в харю.

А теперь вопрос: неужто у первого подхода есть какой-то тайный недостаток, вынуждающий тянуть какую-то левую библиотеку? Почему после left-pad такие штуки всё ещё популярны?

Не оскудеет IT идиотами никогда, пока в IT платят деньги.

Я, может, что-то не понимаю, но
const has = function(object, key)
и оно вроде даже работает.

> Object.prototype.hasOwnProperty = 2
2
> const has = function(object, key) {
...     return Object.prototype.hasOwnProperty.call(object, key);
... }
undefined
> console.log(has({a: 'asd'}, 'a'));
Thrown:
TypeError: Object.prototype.hasOwnProperty.call is not a function
    at has (repl:2:44)
>

Тяжелое наследие бурной молодости JS. Доходит до того, что прототип умудряются переписывать через JSON. Но это лишь повод следить за JS, а не реализовывать функции прототипа Object и Function с нуля.