原型与原型链

class Monster{

constructor(name,hp){

this.name=name;

this.hp=hp

this.g=function(){

console.log("gg");

}

}

f(){

console.log("fff");

}

}

let o=new Monster(“a”,12)

注意:1.任意一个(构造)函数都有与之相对应的原型对象,可以通过constructor访问,而原型对象可以通过prototype访问构造函数。

2.在本例子里,原型对象Monster和构造函数Monster合并成为类,但一般又称原型对象Monster为类,未有准确定义,注意区分。

3.直接打印构造函数Monster

console.log(Monster)出来的是constructor里面的代码内容,不包括原型里代码内容

同时console.log(typeof(Monster))//输出:function

console.log(typeof(o.proto))//输出:object

注意:如果

,输出undefined与4156

因为Monster.a是构造函数,只是挂载了一个a在Monster上而非包含a通过此构造函数创建的对象都没有包含a。并没有原型对象上属性的改变。

4.在js中,对象如果在自己的这里找不到对应的属性或者方法,那就会继续往原型对象上去找,若原型对象没有,则沿着原型对象的原型对象去找,整个查找过程都是顺着proto属性,一步一步往上查找,形成了像链条一样的结构,这个结构,就是原型链。所以,原型链也叫作隐式原型链

5.函数也是一种对象

显式原型与隐式原型

1. 显示原型

显示原型就是利用prototype属性查找原型,只是这个是函数类型数据的属性。

2. 隐式原型

隐式原型是利用proto属性查找原型,这个属性指向当前对象的构造函数的原型对象,这个属性是对象类型数据的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值