console.log(typeof String.prototype); // object
console.log(typeof Number.prototype); // object
console.log(typeof Object.prototype); // object
console.log(typeof Boolean.prototype); // object
console.log(typeof Function.prototype); // function
为什么typeof Function.prototype
会像其他原型对象一样返回“function”而非“object”?
谢谢!
答案 0 :(得分:17)
这似乎在ECMAScript 5中定义:
15.3.4函数原型对象的属性
Function原型对象本身就是一个Function对象(它的
[[Class]]
是“Function”),当被调用时,它接受任何参数并返回 undefined 。
答案 1 :(得分:4)
它在ECMAScript2015中提到
http://www.ecma-international.org/ecma-262/6.0/#sec-properties-of-the-function-prototype-object:
Th函数原型对象被指定为一个函数对象,以确保与ECMAScript 2015规范之前创建的ECMAScript代码兼容。
此函数对象实际上并不执行函数对象要执行的任何操作。你可以用任何参数调用它&它返回undefined。这是一个愚蠢的wrt。功能对象。这是一个普通的原型对象。
由于它出于兼容性原因,它甚至没有原型属性。
有关详细说明,请参阅以下答案: enter link description here
答案 2 :(得分:0)
由于它具有任何功能应该具有的所有方法和道具,这使得有效一个功能......
考虑一下,然后让它下沉,然后你就会得到图片:)