【无标题】

本文深入探讨JavaScript中的原型对象prototype和对象原型__proto__,阐述它们如何实现属性和方法的共享。通过示例介绍了构造函数的constructor属性以及原型链的工作原理,包括Star构造函数的原型对象设置和原型链的形成。同时,提到了修改原型对象可能导致constructor丢失的问题及解决办法。
摘要由CSDN通过智能技术生成

原型

  1. 原型对象 prototype
  2. 原型的作用共享性
  3. 对象原型__proto__
    1) 对象都会有一个属性__proto__指向构造函数的prototype原型对象,之所以我们对象可以使用构造函数prototype原型对象的属性和方法,就是因为对象有__proto__原型的存在
    2)对象身上系统自己添加一个__proto__指向我们构造函数的原型对象
  4. 对象原型(proto)和构造函数(prototype)原型对象里面都有一个属性constructor属性,constructor我们称为构造函数,因为它指回构造函数本身。
  5. constructor主要用于记录该对象引用于哪个构造函数,他可以让原型对象重新指向原来的构造函数。
function Star(uname,age){
	this.uname = uname;
	this.age = age;
}
// Star.prototype.sing = function(){
//	console.log('我会唱歌')
// }
// Star.prototype.movie = function(){
// 	console.log('我会跳舞')
// }
//如果我们修改了原来的原型对象,给原型对象赋值的是一个对象,会覆盖掉constructor,则必须手动的利用constructor指回原来的构造函数
Star.prototype = {
   constructor:Star,
   sing:function(){
   	console.log('我会唱歌')
   },
   movie:function(){
   	console.log('我会跳舞')
   }
}

在这里插入图片描述

原型链

我们Star原型对象里面的__proto__原型指向的是Object.prototype
Star.prototype.proto ==Object.prototype
我们Object.prototype原型对象里面的__proto__原型,指向为null
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值