• 使用语法结构创建的对象

function Duck(name) { 
    var obj = {
        name: name,
        say: function (content) {
            console.log(content)
        }
    }
    return obj;//返回一个对象
}

var RoastDuck = Duck(RoastDuck);//实例化
RoastDuck.say("hhh");//调用
  • 使用构造器创建的对象
function Duck() {
  this.name = [];
  this.age = [];
}
var RoastDuck = new Duck();
  • 使用 Object.create 创建的对象

ECMAScript 5 中引入了一个新方法:Object.create()。

function Duck() {
  this.name = [];
  this.age = [];
}
var Roast=Object.creat(Duck);
  • 使用 class 关键字创建的对象

ECMAScript6 引入了一套新的关键字用来实现 class。
这些新的关键字包括 class, constructor,static,extends 和 super。

  • class:用于声明一个类
  • static:类的私有方法声明,被static声明的函数只可以在对象中使用,外部无法调用
  • extends:用于告诉编译器,这个类所继承的对象
  • super:点我
class Animal {
  //初始化
  constructor(age, height) {
    this.height = height;
    this.age = age;
  }
}
//继承父类
class Duck extends Animal {
  constructor() {
    super();//继承父类的初始化
  }
//添加新的功能
  fnt(){
  console.log("它只会吃!!");
}
}