一、寄生构造函数模式、工厂模式、稳妥构造函数模式的区别与联系
- 寄生构造函数模式(重写了构造函数的返回值):
function Person(name,age,job){
var o = new Object();
o.name= name
o.age = age
o.sayName = function (){
console.log(this.name)
}
return o
}
var person = new Person("dailu")
person.sayName() //dailu
console.log(person instanceof Person) //false
- 工厂模式(不使用new 操作符来实例化对象):
function Person(name,age,job){
var o = new Object();
o.name= name
o.age = age
o.sayName = function (){
console.log(this.name)
}
return o
}
var person = Person("dailu")
person.sayName() //dailu
console.log(person instanceof Person) //false
- 稳妥构造函数模式(不使用new 也不使用this,只能通过方法访问属性)
function Person(name,age,job){
var o = new Object();
o.sayName = function (){
console.log(name)
}
return o
}
var person = Person("dailu")
person.sayName() //dailu
console.log(person instanceof Person) //false
共性:都不能判断对象类型