对象的创建

2019-04-15  本文已影响0人  灯火葳蕤234

JavaScript中的对象实际上是键值对的集合,如何去创建一个对象呢?有以下方法:

字面量创建(Object Literal)
const circle = {
  radius: 1,
  location: {
    x: 1,
    y: 1
  },
  draw: function() {
    console.log('draw');
  }
};

当对象中有一个或多个方法,即对象具有行为性时,使用创建对象语法来创建多个对象是不妥的,解决方法是使用工厂函数或者构造函数(它们都是JavaScript的内建函数)。

工厂函数(Factory)
function createCircle(radius) { 
  return {
    radius, //键值同名时,可以去除冗余代码比方说值(ES6新特性)
    draw: function() {
      console.log('draw');
    }
  };
}
const circle = createCircle(1);
构造函数(Constructor)
function Circle(radius) {
  this.radius = radius;
  this.draw = function() {
    console.log('draw');
  }
}
const another = new Circle(1);

我们用new关键字调用Circle函数,并且传入1作为参数,就创建了一个新的对象。
当我们使用new关键字的时候,发生了什么呢?
首先,new会创建一个空的对象{}
然后,它会设置this指向这个对象,
最后,从构造函数中返回这个对象(尽管构造函数中并没有return语句)

上一篇 下一篇

猜你喜欢

热点阅读