Notes

构造函数

构造函数是,使用 new 创建对象时会调用的函数

构造函数实际上与普通的函数没区别,只是约定上,会将构造函数的函数名字第一个字母大写,用于区分

检查对象的类型

const anObject = {
  name: 'object',
};

console.log(anObject instanceof Object); // true
console.log(anObject.constructor === Object); // true

检查一个对象的类型,可以使用

new 操作符的作用

function Person(name) {
  this.name = name;
  this.sayName = function() {
    console.log(this.name);
  };
}

const person = new Person('monsoir');
person.sayName(); // monsoir

在构造函数中定义属性特征

function Person(name) {
  Object.defineProperty(this,  "name", {
    get: function() {
      return name;
    },
    
    set: function(value) {
      name = value;
    },
    
    enumerable: true,
    configurable: true,
  });
  
  this.sayName = function() {
    console.log(this.name);
  };
}