js中的原型和原型链

一、原型
1.原型的定义:
他是构造函数的祖先
代码举例说明:
在这里插入图片描述
运行结果:
在这里插入图片描述
解释说明: 原型的晚辈可以继承原型中的属性和属性值
2.原型的特点:
1.原型是构造函数的公共的祖先,当定义两个变量都等于构造函数,那么原型中的name为这两个变量共有的
2.原型也是对象
3.构造函数有自己的属性,原型中的属性就不会起作用了。
4.原型可以减少代码的冗余,例如:
1.可以把构造函数里面每次要执行的属性值(公有属性)都放在外面

Person.prototype.name = "haha";                                    
Person.prototype.age = "18";                                          
Person.prototype.lang = "4900"; 
可以简化的写为:

	* Person.prototype = {
		name = "haha",
		age = "18",
		lang = "4900"}

3.原型的增删改查
1.改变原型:
Person.prototype.lastName = “wangzehui”;
2.查看原型
Person.prototype.lastName
3.原型不可以删除
4.constructor
constructor可以返回构造函数
在这里插入图片描述
执行结果:
在这里插入图片描述
当原型改变时,再返回构造函数也会改变
5.内部属性

在这里插入图片描述
6.执行代码

在这里插入图片描述
优先执行: Person.prototype.name = ‘sunny’;//优先显示
因为在person中,有一个隐式定义,为:
在这里插入图片描述
他会把Person.prototype中的值赋给新的变量,但是前面的__proto__不变,还是原来原型中name的值
2.
在这里插入图片描述
执行结果:
在这里插入图片描述
没有执行new,新的name值会覆盖以前的name值,会返回cherry
二.原型链
1.定义:原型上面加原型,把原型连成链,就是原型链
代码举例说明:
在这里插入图片描述
这样可以把原型的属性全部赋给son构造函数中。

2.增删改查
只能是本人进行删,改,增操作
在这里插入图片描述
执行结果:
在这里插入图片描述
绝大多数对象的最终多会继承自object.prototype
系统给予的属性,自己可以改,但是系统没有给我们的属性,是不可以进行修改的
object.create(原型):
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值