使用工厂方法创建对象, 对象实例的类型都是Object,不容易区分对象。
比如,创建一个人的对象, 和创建一个狗狗的对象,打印出来对象的类型都是Object, 很难区分。
这种情况, 用构造函数方法创建对象, 就可以解决了。
注意: 创建构造函数, 习惯首字母大写。
构造函数和普通函数的区别:
调用: 普通函数直接调用, 构造函数需要使用new关键字来调用。
this: 1.当以函数的形式调用时, this是window。
2.当以方法的形式调用时, 谁调用方法this就是谁。
3.当以构造函数的形势调用时, this就是新创建的对象。
function Person(){
}
//当做普通函数调用
var obj=Person();
//构造函数调用
var obj=new Person();
- 构造函数创建对象(方法写在构造函数里,缺点:构造函数每执行一次, 就会创建一次方法。)
function Person(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;
// 方法写在里面
this.sayName=function(){
console.log(this.name);
}
}
function Dog(name,age){
this.name=name;
this.