Javascript中的函数是一个对象。
在函数上运行typeof时,为什么返回值“ function”而不是“ object”?
var objLit = {}
console.log(typeof objLit); // "object"
function hello() {
console.log("hello world");
}
console.log(typeof hello); // "function"
答案 0 :(得分:3)
因为这就是规范所说的。尽管所有函数都是对象,但是在函数上使用typeof
时将返回'function'
而不是'object'
。参见table:
Type of val Result: Object (does not implement [[Call]]) "object" Object (implements [[Call]]) "function"
(函数具有内部方法[[Call]];非函数没有。)