Когда typeof запускается для функции, он возвращает «function» в качестве типа. Почему он не возвращает «объект»? - PullRequest
0 голосов
/ 14 октября 2019

Функция в Javascript - это объект.

При запуске typeof для функции, почему она возвращает значение «функция», а не «объект»?

var objLit = {}
console.log(typeof objLit); // "object"

function hello() {
  console.log("hello world");
}
console.log(typeof hello); // "function"

1 Ответ

3 голосов
/ 14 октября 2019

Потому что так сказано в спецификации. Хотя все функции являются объектами, при использовании typeof функция вернет 'function' вместо 'object'. См. Таблицу :

Type of val                            Result:
Object (does not implement [[Call]])   "object"
Object (implements [[Call]])           "function"

(Функции имеют внутренний метод [[Call]]; функции не имеют.)

...