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

js原型问题

js原型问题

胡说叔叔 2018-10-16 21:44:19
如图,1、不实例化base直接base.prototype也行?2、prototype是什么意思?base.prototype是base的儿子?3、_proto_是什么意思?base._proto_是base的父亲?是对象?
查看完整描述

1 回答

?
三国纷争

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

base.prototypebase的原型对象。该对象上会有一个constructor属性指向base。但是你的例子中,把base.prototype替换为一个新的对象,所以它的上面没有了constructor属性,通常最好的做法还是要把这个加回来。即:

base.prototype = {
    constructor: base,
    $id: function(id){return id}
}

var a = new base()时,会创建一个新的对象a,该对象可以理解为继承自base.prototype$id方法在对象a上没有,就回从原型对象中去找。
对象a内部有一个属性__proto__会指向它的原型对象。

base本身是个函数实例,所以它的base.__proto__指向的是Function.prototype。所以

Function.prototype.a = 5base.a //5

总的来说:
base.__proto__可以理解为是base的父亲,是一个对象。但base.prototype不可以理解为base的儿子,但它俩之间有千丝万缕的关系。


查看完整回答
反对 回复 2018-11-03
  • 1 回答
  • 0 关注
  • 529 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号