创建对象的几种方式

学习笔记 专栏收录该内容
10 篇文章 0 订阅

字面量形式创建对象

let student = {
  name:'小明',
  age:16,
  like:function(){
    console.log(this.name+'喜欢跳舞')
  }
}

工厂模式

function Student(name,age,likename) {
  let student = {
    name,
    age,
    likename,
    like:function(){
      console.log(this.name + '喜欢' + this.likename)
    }
  }
  return student
}
let s1 = Student('小红',18,'吃大餐')
s1.like()

构造函数创建对象(constructor:Teacher)

//可以将都需要用到的方法进行封装,封装到一个对象上,并让构造函数的prototype属性等于这个对象,这样创建新的实例对象调用同一个方法节省空间

let teachProto = {
  like:function(){
    console.log(this.name+'喜欢'+this.likename)
  }
}
function Teacher(name,age,likename){
  this.name = name,
  this.age = age,
  this.likename = likename
  // this.like = function(){
  //   console.log(this.name+'喜欢'+this.likename)
  // }
}
Teacher.prototype = teachProto
//new 创建一个新的对象t1,并将Teacher函数内部的this指向这个新的对象
let t1 = new Teacher('小明',18,'教书')
console.log(t1)
t1.like()

es6中的class创建对象(constructor:class Cat)

class Cat{
  constructor(name,color,likename) {
    this.name = name,
    this.color = color,
    this.likename = likename
    // this.like = function(){
    //   console.log(this.color+'的'+this.name+'喜欢'+likename)
    // }
  }
  like(){
    console.log(this.color+'的'+this.name+'喜欢'+this.likename)
  }
}

let c1 = new Cat('波斯猫','白色','毛球')
c1.like()
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

Glory of the king

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值