面试必问系列之 构造函数,原型对象和实例之间的关系(一)

关于构造函数,原型对象,实例之间的关系  ,先来看一张图,大致了解下




1,构造函数

构造函数跟普通函数没什么区别,都是由function定义的,为了和普通函数做区别,一般构造函数首字母大写


像这样,构造函数可以使用new操作符调用,也可以像普通函数那样调用,如果像普通函数那样调用,Person方法会自动添加到window对象中,

2,原型对象

我们每创建一个函数,js内部会根据特定规则(不必关心什么规则)为这个函数添加一个prototype属性,这个prototype属性是一个对象,也就是我们平常说的原型对象,说白了,原型对象真的是一个对象,这个对象的名字是prototype,这个对象隐藏在函数中,原型对象内部会自动包含一个constructor属性,这个属性就是一个指针,指向构造函数,表明了构造函数和原型对象之间的关系。


3,实例

我们创建构造函数之后,通过new操作符来调用,这样new出来的例如person1和person2就是实例,我们可以无限制的创建实例,实例中也会自动隐藏一个属性[[Prototype]] 这个属性也是一个指针,指向的是原型对象,所以,构造函数,原型对象,实例之间关系就明了了,原型对象是构造函数的一个属性,同时,原型对象的一个默认constructor属性指向构造函数,实例的[[Prototype]]属性指向原型对象,注意,[[Prototype]]对脚本是不可见的,我们只能看到它,无法用到它

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值