Обновить
5
0
Г.О.@gro

Пользователь

Отправить сообщение
Гм. Не новая голова, а новое тело. Ведь личность в голове содержится.


Вот когда удачно пересадят, тогда и узнаем, где личность находится )
У многих людей, которых знаю, скорее всего она находится в заднице.
Что вы имеете ввиду? Что современные js-движки настолько глупы, что для каждого объекта будут по новой компилить одну и туже тяжеловесную функцию?
Нужно разобраться, зачем нужны скрытые свойства.

1. Для защиты от страшных хакеров, которые «взломают» мой объект.
2. Для того, чтобы использующий класс программист, видел только его интерфейс и ему не мозолили глаза способы реализации.

Для 2-го вполне хватает jsdoc'ов с private и IDE'шек с автокомплитом.
Нет. Те, кто приходят с True-ООП языков первым делом приходят в дикий восторг: «надо же, я могу в рантайме менять структуру всех объектов, офигеть!»
После чего эти люди начинают на каждое упоминание классов писать «не надо классов! вы не понимаете всей красоты прототипов!».
Через какое-то время до некоторых начинает доходить: «ну могу я структуру прототипа в рантайме поменять, ну что дальше?»
Это не баг, это просто со старого проекта код тупо перетащили. Нужно было бы отрефакторить, но решили просто нейроны пустить через сетчатку туда и обратно. Правда слепое пятно образовалось, но вообще работает, так что лучше не трогать.
То есть энтропия относительна?
Как именно кофе задаёт?
TypeScript например так:

function func(x = 5) {
return x * 3;
}

function func(x) {
if (x === void 0) { x = 5; }
return x * 3;
}

Ну, так и NULL с Undefined могут быть допустимыми значениями. Остаётся только в arguments копаться.
Ну, в той же википедии, а дальше по ссылкам )
Вот, например, картинка.
www.vetmed.vt.edu/education/Curriculum/VM8054/EYE/RTNADGRM.JPG
Light идёт сверху, а Pigment Cell внизу. И Signal обратно пошёл.
Это что — у нас сетчатка чувствительной стороной внутрь головы направлена. Вот это говнокодище в продакшен выкатили.
Всё вокруг Lagacy-код. Включая цивилизацию и структуру ДНК. Давайте выкинем всё на фиг.
классика всё-таки
name = name || «default»;
jshint-комментарии в коде, кстати, дополнительную полезную инфу несут, не только для jshint.
Типа «да, здесь на первый взгляд написано не совсем правильно, но конкретно здесь так надо».
i++ можно заменить на i += 1

JSLint тоже сначала показался слишком жёстким, но потом привык :)

У JSHint был плохой парсер. Например:

for (k in obj) {
if (obj[k] === 5) {...}
}

Здесь должно быть предупреждение, типа «юзайте if (obj.hasOwnProperty(k))», но JSHint проверял только на то, что после for сразу стоит if.
Может исправили, не знаю.
Видимо автор недавно стал работать с вордпрессом, нашёл десяток говнокодистых моментов и решил написать статью.
Что будет когда он найдёт там остальные десять тысяч? Каждый раз по статье?
Но тогда это был бы уже не похапэ. Если оставаться в рамках того, что есть, то "|" всё-таки какое-никакое решение.
Это и есть полиморфизм.
Если я пишу:
function func($a) {
foreach ($a as $k => $v) {
//…
}
}
То мне всё равно, массив это или объект-итератор.
Сейчас нет возможности указать «я хочу здесь итератор и мне плевать, объект это или нативный массив».

Я уже не говорю о том, чтобы функции для работы с массивами могли объекты с нужными интерфейсами принимать.
Предлагается добавить возможность указания нескольких типов для этих случаев, например:
function (array|Traversable $in) {}
Это круто, конечно.
Но конкретно в этом случае лучше бы включили array в Traversable и в ArrayAccess или отдельные псевдо-типы для этого сделали.
Но исходная фраза не звучит как «смотрю от кого письмо и проверяю, действительно ли оно подписано отправителем».
Потому что на идиотские вопросы даже гугл не ответит.

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург и область, Россия
Зарегистрирован
Активность