wei*_*lou 21 javascript prototype
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
Run Code Online (Sandbox Code Playgroud)
为什么typeof Function.prototype像其他原型对象一样返回"function"而不是"object"?
谢谢!
lee*_*ggs 17
这似乎在ECMAScript 5中定义:
15.3.4函数原型对象的属性
Function原型对象本身就是一个Function对象(它
[[Class]]是 "Function"),在调用时,它接受任何参数并返回undefined.
在ECMAScript2015中提到过
http://www.ecma-international.org/ecma-262/6.0/#sec-properties-of-the-function-prototype-object:
将函数原型对象指定为函数对象,以确保与ECMAScript 2015规范之前创建的ECMAScript代码兼容。
该功能对象实际上并没有执行功能对象要执行的任何操作。您可以使用任何参数调用它,并且返回未定义。这是愚蠢的。功能对象。这是一个普通的原型对象。
由于出于兼容性原因它就在那儿,所以它甚至没有原型属性。
有关更多说明,您可以参考以下答案: 在此处输入链接描述