为了解决从原型对象生成实例的问题,Javascript提供了一个构造函数(Constructor)模式。
所谓"构造函数",其实就是一个普通函数,但是内部使用了this
变量。对构造函数使用new
运算符,就能生成实例,并且this
变量会绑定在实例对象上。
比如:
function Cat(name,color){
this.name=name;
this.color=color;
}
我们现在就可以生成实例对象了。
let cat1 = new Cat("大毛","黄色");
let cat2 = new Cat("二毛","黑色");
consoloe.log(cat1.name); // 大毛
console.log(cat1.color); // 黄色
这时
cat1
和cat2
会自动含有一个constructor
属性,指向它们的构造函数。console.log(cat1.constructor == Cat); //true
console.log(cat2.constructor == Cat); //true