其中__proto__为Number,Date,Boolean,Array

时间:2016-01-02 18:56:27

标签: javascript

我根据原型链关系绘制了一张图片。

但想知道Number,Date,Boolean,Array的__proto__指向哪里。

您的评论欢迎

enter image description here

2 个答案:

答案 0 :(得分:4)

如有疑问,可以查看规格:

  

15.7.3 Properties of the Number Constructor

     

Number的[[Prototype]]内部属性的值   构造函数是Function原型对象(15.3.4)。

     

15.9.4 Properties of the Date Constructor

     

Date的[[Prototype]]内部属性的值   构造函数是Function原型对象(15.3.4)。

     

15.6.3 Properties of the Boolean Constructor

     

布尔值的[[Prototype]]内部属性的值   构造函数是Function原型对象(15.3.4)。

     

15.4.3 Properties of the Array Constructor

     

Array的[[Prototype]]内部属性的值   构造函数是Function原型对象(15.3.4)。

原因是那些对象是函数/构造函数。所以你可能想对它们使用函数方法。

例如,将类似数组的对象转换为数组的(坏)方法:

Array.apply(void 0, {0: 'a', 1: 'b', 2: 'c', length: 3}) // ["a", "b", "c"]

答案 1 :(得分:2)

由于所有这些都是函数(typeof Date = typeof Number = "function"),因此它指向Function.prototype

只需检查即可轻松验证:

Date.__proto__ === Function.prototype; // true

这是因为函数(您将它们称为函数),它们包含函数需要执行的所有操作(例如.call .bind和{ {1}})