首页 > 代码库 > JavaScript学习笔记-创建对象之设计模式
JavaScript学习笔记-创建对象之设计模式
<!DOCTYPE html>
<html>
<head>
<title>浏览器对象</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<script>
<!--创建对象之普通模式-->
var person = new Object();
person.name = "name1";
person.job = "job1";
person.getName = function(){
return this.name;
}
document.write("普通模式:" + person.getName() +‘<br>‘);
<!--小结:如果是用上面这种普通模式来创建对象,一旦需要创建的对象数量之多,就会造成代码冗余,比如一个班上有四十位同学就必须new 40 个Object-->
<!--创建对象之工厂模式 -->
function createObject(name,job){
var o = new Object();
o.name = name;
o.job = job;
o.getName = function(){
return this.name
};
return o; //记得要将对象o返回
}
var person = createObject("FactoryName1","manage");
var anotherPerson = createObject("FactoryName2","manage");
document.write("工厂模式:" + person.getName() +‘ , ‘+ anotherPerson.getName()+‘<br>‘);
<!--小结:可以发现工厂模式创建对象只要传递参数就可以了,工厂里面会有专门的机器来制造产品(对象)可以把普通模式比喻成工厂里面流水线上的工人,而工厂模式可以比喻成工厂里面的机器.下面通过自定义构造函数模式来改进下工厂模式-->
<!--创建对象之自定义构造函数模式-->
function Person(name,job){
this.name = name;
this.job = job;
this.getName = function( ){
return this.name;
};
}
var person1 = new Person(‘奶拉力‘,‘assist‘);
var person2 = new Person(‘辛得拉‘,‘carry‘);
document.write("自定义构造函数模式:" + person1.getName() +‘ , ‘+ person2.getName()+‘<br>‘);
<!--小结:注意这种模式和工厂模式还是有区别的,1.函数名首字母P是大写的这个是参照java,C的构造函数来的;2,构造函数内部没有返回值;3,调用该函数时得加上new 关键字;4,任何函数只要是通过new关键词来使用它就是构造函数-->
</script>
</body>
</html>
JavaScript学习笔记-创建对象之设计模式