JavaScript区分构造函数衍生物:实例成员,静态成员,原型成员

1.实例成员

实例成员是属于实例自己的

(实例名.属性)
(this.属性,这里的this指向的就是实例本身,例如:mi)

function Goods(name, price, count) {
      this.name = name
      this.price = price
      this.count = count
      this.sayhi = function () { }
    }
    const mi = new Goods('小米', 1999, 20)
    console.log(mi)
    const hw = new Goods('华为', 3999, 59)
    console.log(hw)
    console.log(mi === hw)
    mi.name = 'vivo'
    console.log(mi)
    console.log(hw)

2.静态成员

说明:

1. 构造函数的属性和方法被称为静态成员

2. 一般公共特征的属性或方法静态成员设置为静态成员

3. 静态成员方法中的this 指向构造函数本身

 (类名.属性)

// 静态成员 
    Goods.num = 10
    console.log(Goods.num)
    Goods.Type= function () {"手机" }



3.原型成员

原型属性是构造函数和实例都可以访问的
(构造函数名.prototype.属性)
(实例.属性)

构造函数和原型对象中的this 都指向实例化的对象

function Star(uname) {
      // that = this
      // console.log(this)
      this.uname = uname
    }
    // 原型对象里面的函数this指向的还是 实例对象 ldh
    Star.prototype.sing = function () {
      that = this
      console.log('唱歌')
    }
    // 实例对象 ldh   
    // 构造函数里面的 this 就是  实例对象  ldh
    const ldh = new Star('刘德华')
    ldh.sing()
    console.log(that === ldh)

原型详解另一篇博客:

包括:

1.为什么出现原型

2.原型对象和对象原型以及构造函数之间的关系

3.constructor 属性

4.原型链

               JavaScript原型详解:原型对象prototype,对象原型__proto__,constructor 属性,原型链-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值