js创建对象的方式

文章介绍了JavaScript中创建对象的多种方式,包括使用class创建构造函数、类的继承、静态方法的使用,以及通过Object对象、字面量、工厂函数、自定义构造函数和构造函数+原型的组合模式来创建和操作对象。
摘要由CSDN通过智能技术生成
- class
//使用class创建构造函数
  1.class Foo {
    constructor(who){
      this.me = who;
    }
    //给类添加新方法(这些方法都会加在原型prototype上)
    identify(){
      return "I am " + this.me;
    }
  }
//继承
  class Bar extends Foo {
    constructor(who){
      // super() 指的是调用父类
      // 调用的同时,会绑定 this 。
      // 如:Foo.call(this, who)
      super(who);
    }
  
    speak(){
     alert( "Hello, " + this.identify() + "." );
    }
  }
  
  //静态方法可以通过类名调用,不能通过实例对象调用,否则会报错
  class Person {
      static sum(a, b) {
          console.log(a + b)
      }
  }
  var p = new Person()
  Person.sum(1, 2)  // 3
  p.sum(1,2)     //  TypeError p.sum is not a function

//其它创建对象的方式:

//1.创建 Object 对象
var p = new Object()
//动态添加属性和方法
p.name = 'Tom'
p.age = 18
p.setName = function(name){
    this.name = name 
}

//2.字面量的方式:
var p = {
    name = 'Tom'
    age = 18
    setName: function(name){
        this.name = name
    }
}

//3.工厂函数
function createPerson(name,age){
    var obj = {
        name: name,
        age: age,
        setName: function(name){
        this.name = name
        }
    }
    return obj
}

var p1 = createPerson('Tom',18)

//4.自定义构造函数
function Person(name, age){
    this.name = name
    this.age = age
    this.setName = function(name){
        this.name = name
    }
}

var p1 = new Person('Tom',18)

//5.构造函数+原型的组合模式
function Person(name, age){
    this.name = name
    this.age = age
}

Person.prototype.setName = function(name){
    this.name = name
}
var p1 = new Person('Tom',18)


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值