JS构造函数、实例和原型对象

构造函数

<script>
    function Persion(name,age){
      this.name = name
      this.age = age
      this.mover = function(){
        console.log("三生三世十里桃花")
      }
    }
    let dlrb = new Persion("迪丽热巴",24)
    console.log(dlrb)
</script>

构造函数是特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总是和new一起来使用。我们可以把对象中一些公共的属性和方法抽取出来,然后封装到这个函数里面。

new在执行时会做四件事情:

1:在内存中创建一个新的空对象。

2:让this指向这个新对象。

3:执行构造函数里面的代码,给这个新对象添加属性和方法。

4:返回这个新对象

构造函数里面的属性和方法叫成员 成员分为实例成员和静态成员

实例成员就是在构造函数内部通过this添加的成员 实例成员只能通过实例化的对象来访问 不能通过构造函数来访问实例成员

静态成员 在构造函数本身添加的成员 静态成员只能通过构造函数来访问

<script>
    function Persion(name,age){
      this.name = name
      this.age = age
      this.mover = function(){
        console.log("三生三世十里桃花")
      }
    }
    let dlrb = new Persion("迪丽热巴",24)
    console.log(dlrb.name)  //name age 都是实例成员
    console.log(Persion.name)//访问不到
    Persion.sex="女"
    console.log(Persion.sex)
    console.log(dlrb.sex)  //访问不到
  </script>

构造函数原型 prototype 

构造函数通过原型分配的函数是所有对象所共享的 每一个函数都有一个prototype属性

原型就是一个对象 也称为prototype为原型对象 用来共享方法

<script>
    function Persion(name,age){
      this.name = name
      this.age = age
      this.movie = function(){
        console.log("三生三世十里桃花")
      }
    }
    let dlrb = new Persion("迪丽热巴",24)
    console.log(dlrb.name)  //name age 都是实例成员
    console.log(Persion.name)//访问不到
    Persion.sex="女"
    console.log(Persion.sex)
    console.log(dlrb.sex)  //访问不到
    let ym = new Persion("杨幂",24)
    //浪费内存 dlrb ym movie都开辟了一个新的内存空间
    console.log(dlrb.movie==ym.movie)  //false
    Persion.prototype.marriage = function(){
      console.log("我们都是单身狗")
    }
    console.log(dlrb.marriage==ym.marriage)
  </script>

对象身上系统自己添加一个__proto__指向构造函数的原型对象

constructor构造函数

对象原型(__proto__)和构造函数(prototype)原型对象里面都有一个属性constructor属性,constructor我们称为构造函数,因为它指回构造函数本身。

关系图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沫熙瑾年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值