在Chrome的JavaScript控制台中:
function placeOrder() {
return 1;
};
undefined
console.log(placeOrder.prototype);
placeOrder {}
但是在IE 11中,默认的原型属性似乎是一个空对象。
我想知道Chrome中的对象“ placeOrder {}”是什么?
我也在Firefox中对其进行了测试。在Firefox中,prototype属性也是“ placeOrder {}”。
在IE 11控制台中:
function placeOrder() {
return 1;
};
undefined
console.log(placeOrder.prototype);
undefined
[object Object]{}
谢谢。
最佳答案
它是一个从Object.prototype
继承并具有自己的constructor
属性,其值是构造函数的对象。
见Creating Function Objects
假设proto是创建新对象的结果,该对象将由表达式new Object()
构造,其中Object
是
具有该名称的标准内置构造函数。
使用参数"constructor"
,Property Descriptor {[[Value]]:F,{调用原型的[[DefineOwnProperty]]内部方法
[[可写]]:是,[[可枚举]]:否,[[可配置]]:
真假。
调用F的[[DefineOwnProperty]]内部方法,其参数为"prototype"
,Property Descriptor {[[Value]]:proto,
{[[Writable]]:是,[[Enumerable]]:否,[[Configurable]]:
false}和false。