在JavaScript中,函数原型属性的默认值是什么?

时间:2016-03-26 20:42:19

标签: javascript internet-explorer prototype

在Chrome的JavaScript控制台中:

function placeOrder() {
        return 1;
};
undefined
console.log(placeOrder.prototype);
placeOrder {}

但是在IE 11中,默认的prototype属性似乎是一个空对象。 我想知道对象是什么" placeOrder {}"在Chrome? 我也在Firefox中测试过它。在Firefox中,原型属性是" placeOrder {}"太。

在IE 11控制台中:

function placeOrder() {
        return 1;
};
undefined
console.log(placeOrder.prototype);
undefined
[object Object]{} 

感谢。

1 个答案:

答案 0 :(得分:4)

它是一个继承自Object.prototype且具有自己的constructor属性的对象,其值为构造函数。

请参阅Creating Function Objects

  
      
  1. proto 是创建一个新对象的结果,因为new Object()表达式构建了一个新对象,其中Object是   具有该名称的标准内置构造函数。
  2.   
  3. 使用参数"constructor"Property Descriptor {[[Value]]: F 调用 proto 的[[DefineOwnProperty]]内部方法, {   [[可写]]: true ,[[Enumerable]]: false ,[[Configurable]]:    true }, false
  4.   
  5. 使用参数"prototype"Property Descriptor {[[Value]]: proto 调用 F 的[[DefineOwnProperty]]内部方法,   {[[可写]]: true ,[[Enumerable]]: false ,[[Configurable]]:    false }和 false
  6.