为了账号安全,请及时绑定邮箱和手机立即绑定

不太理解一个问题,构造函数的__proto__,是啥?

不太理解一个问题,构造函数的__proto__,是啥?

拉丁的传说 2019-03-13 14:13:44
小白看完一些文章有点晕,其中不理解的一个问题就是比如person.__proto__是 Person.prototype那么Person.__proto__是Function.prototype 这是为何。 那么Fuction.prototype算原型链中的一步吗? 函数对象和普通对象有点分不清。求点醒。
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

因为构造器函数是函数的一种,所以函数构造器的__proto__指向Function.prototype


查看完整回答
反对 回复 2019-03-20
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

1、首选__proto__是浏览器厂商实现的,W3C规范中并没有这个东西。

2、它的作用就是访问对象的原型。

3、对于js来说,一切皆对象,尤其是引用类型,更是如此。

4、所有的对象都有一个原型(null除外),函数是对象,那么函数也不例外。所以Person.__proto__就是访问这个构造函数的原型。

5、每一个函数都有一个prototype属性,属性的值也是一个对象,称为原型对象。所以Person.prototype访问的就是这个Person类的原型对象。

6、抛开__proto__来说,通过属性访问Person的原型可以这样写:Person.constructor.prototype。也就是说Person.contractor.prototype === Person.__proto__ //true;

7、假如实例化Person,var p = new Person();综上所述,p.constructor === Person // true; p.constructor.prototype === Person.prototype // true;

不知道这样解释能理解嘛。


查看完整回答
反对 回复 2019-03-20
  • 2 回答
  • 0 关注
  • 1308 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信