JS高级之prototype的使用

1.prototype的介绍
每个函数都有一个prototype属性,默认指向一个Object空对象(原型对象)
原型对象中有一个constructor,指向函数对象
下面是一个例子:

 function People(name,age){
    this.name = name;
    this.age = age;
 }

如果要添加一个新的属性需要在构造函数里面添加,比如要添加一个sex属性

 function People(name,age){
    this.name = name;
    this.age = age;
    this.sex = '男';
 }

而不能直接在对象构造器中添加,比如Person.sex = ‘男’
2.prototype继承
所有JS对象都会从prototype中继承属性和方法

function People(name,age){ //在对象的构造函数中添加属性和方法
   this.name = name;
   this.age = age;
   this.sex = '男';
   this.meal = function(){
      console.log('酸菜鱼')
    }
}
People.prototype.sleep = function(){ //使用prototype属性给对象添加新的方法
   console.log('睡觉中...')
}
var people = new People('Tom', 18)
people.meal()  //打印输出酸菜鱼
people.sleep()  //打印输出睡觉中...

在这个例子中,people是一个实例对象,它可以调用父类的方法。
JS对象有一个指向原型对象的链,当访问一个对象的属性时,它会先从对象本身寻找这个属性,找不到,会依次向上寻找该对象的原型,以及原型的原型,层层向上搜索,直到找到一个对象的属性或到达原型链的尾部。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值