原型和原型链

原型 prototype   原型链 _proto_

每一个函数都有一个Prototype属性

每一个对象都有_proto_属性

function Animal () {

    this.type = '哺乳类'

}

console.log(Animal.prototype)      // Animal {}

let animal = new Animal();

console.log(animal._proto_ === Animal.prototype)   // true      _proto_指向当前类的原型

Animal.prototype.type = '哺乳‘

console.log(animal.type)   // 哺乳类

delete animal.type

console.log(animal.type) // 哺乳    实例没有这属性就向类的原型上找

console.log(animal._proto_._proto_ === Object._proto_)  // true

animal._proto_.constructor == Animal  类的原型上有个constructor属性指向类

console.log(Object.prototype._proto_) 顶层的对象

特殊的 Function Object (可以充当对象 也可以充当函数)

Function._proto_ ===  Function.prototype

Object._proto_ === Function.prototype

 

判断实例上有没有属性 对象.hasOwnProperty('type')

判断属性在不在的原型上  console.log(’type‘  in animal)   //  in 既可以判断在不在实例也可以判断在不在原型上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值