Size: a a a

JavaScript — русскоговорящее сообщество

2020 October 20

ДК

Дмитрий Коноферчук... in JavaScript — русскоговорящее сообщество
Это некорректная функция. В жс нет типа function. Так же она у тебя неправильно обрабатывает вполне корректные объекты.
https://habr.com/ru/company/ruvds/blog/503634/
ну ведь пользуются..
источник

in JavaScript — русскоговорящее сообщество
Как то, что кто-то чем-то пользуется, отменяет некорректность кода-то?
источник

ДК

Дмитрий Коноферчук... in JavaScript — русскоговорящее сообщество
Как то, что кто-то чем-то пользуется, отменяет некорректность кода-то?
и каково твоё решение этого?
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
Denys Mikhalenko
так она не байндится потому что уже прибайндена
если бы они биндились, то одна и та-же функция из разных контекстов не была-бы равна себе самой ибо биндинг даёт новую функцию.
function foo(){}
const bar =   {}
foo === foo.bind(bar) //fasle
источник

in JavaScript — русскоговорящее сообщество
Дмитрий Коноферчук
и каково твоё решение этого?
Решение чего именно? Какую задачу ты решаешь?
источник

in JavaScript — русскоговорящее сообщество
Дмитрий Коноферчук
и каково твоё решение этого?
Определить правильный тип согласно спецификации? Этого достаточно.
function type(v){
   if(v === null)
       return 'null'
   if(typeof v === 'function')
       return 'object'
   return typeof v
}
источник

ДК

Дмитрий Коноферчук... in JavaScript — русскоговорящее сообщество
Решение чего именно? Какую задачу ты решаешь?
задача строгое определение типа полученного значения..
источник

ДК

Дмитрий Коноферчук... in JavaScript — русскоговорящее сообщество
по той функции что я привёл:
console.log(type(function() {})); —> function
источник

DM

Denys Mikhalenko in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
если бы они биндились, то одна и та-же функция из разных контекстов не была-бы равна себе самой ибо биндинг даёт новую функцию.
function foo(){}
const bar =   {}
foo === foo.bind(bar) //fasle
Так ее движок байндит для тебя
источник

in JavaScript — русскоговорящее сообщество
Дмитрий Коноферчук
по той функции что я привёл:
console.log(type(function() {})); —> function
В жс нет типа function.
источник

in JavaScript — русскоговорящее сообщество
У функции тип - object
источник

KS

Konstantin Sedykh in JavaScript — русскоговорящее сообщество
В жс нет типа function.
кто такую чушь сказал?
источник

in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
кто такую чушь сказал?
Спецификация.
источник

in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
кто такую чушь сказал?
источник

D

Danila in JavaScript — русскоговорящее сообщество
Konstantin Sedykh
кто такую чушь сказал?
Типа нет, а поведение typeof специальное для функций есть
источник

D

Danila in JavaScript — русскоговорящее сообщество
🤷‍♂️
источник

ДК

Дмитрий Коноферчук... in JavaScript — русскоговорящее сообщество
В жс нет типа function.
я знаю что функция JS это специальный объект
но когда нужно определить что же подали: число, строку, объект, функцию, NaN
то приведённая функция скажет об этом
источник

in JavaScript — русскоговорящее сообщество
Дмитрий Коноферчук
я знаю что функция JS это специальный объект
но когда нужно определить что же подали: число, строку, объект, функцию, NaN
то приведённая функция скажет об этом
Какую именно функцию? typeof (class{}) у тебя тоже будет function, но это не callable function
источник

in JavaScript — русскоговорящее сообщество
В прикладных задачах не стоит вопроса строго определения типа оторванного от контекста.
источник

in JavaScript — русскоговорящее сообщество
Скорее тебе надо обычно проверить поведение. В крайнем случае примитивность значения, или проверить на null.
источник