继承程序员的优良传统---懒
- 1.废话不多,上代码
- 2.工厂模式:上代码
- 2.1首先,我们来“造人 creatPerson()”
- 2.2"啪"的一下,很快啊,造完了,造个其他的物种咋样,creatDog()造狗
- 3.工厂模式:缺点
- ==使用工厂方法创建的对象,使用的构造函数都是Object所以创建的对象都是Object这个类型,就导致我们无法区分出多种不同类型的对象==
1.废话不多,上代码
var obj = {
name:"林徽因",
age:19,
sayname:function(){
console.log(this.name);
};
var obj2 = {
name:"林青霞",
age:18,
sayname:function(){
console.log(this.name);
};
var obj3 = {
name:"马钰",
age:20,
sayname:function(){
console.log(this.name);
上面这样写特别麻烦
用工厂模式就相对简单点,
2.工厂模式:上代码
注意观察,下面造的两个物种都有一个非常关键的代码
var obj = new Object();
2.1首先,我们来“造人 creatPerson()”
function creatPerson(name, age){
function creatPerson(name, age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayname = function(){
alert(this.name);
};
return obj;
}
var jb1 = creatPerson("林青霞",18);
console.log(jb1);
jb1.sayname();
//造狗呢?来,上代码!
function creatDog(name, age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayname = function(){
alert("呱呱~~~~");
};
return obj;
}
var jb2 = creatDog("大黄",45);
console.log(jb2);
jb2.sayname();
obj.name = name;
obj.age = age;
obj.sayname = function(){
alert(this.name);
};
return obj;
}
var jb1 = creatPerson("林青霞",18);
console.log(jb1);
jb1.sayname();
2.2"啪"的一下,很快啊,造完了,造个其他的物种咋样,creatDog()造狗
//造狗呢?来,上代码!
function creatDog(name, age){
var obj = new Object();
obj.name = name;
obj.age = age;
obj.sayname = function(){
alert("呱呱~~~~");
};
return obj;
}
var jb2 = creatDog("大黄",45);
console.log(jb2);
jb2.sayname();
3.工厂模式:缺点
使用工厂方法创建的对象,使用的构造函数都是Object所以创建的对象都是Object这个类型,就导致我们无法区分出多种不同类型的对象
下一讲,我们来讲一下规避这种缺点