javascript创建对象的方法--工厂模式(非常好理解)

javascript创建对象的方法--工厂模式(非常好理解)

一、简介

创建对象的方法

本质上都是把"属性"和"方法",封装成一个对象

创建对象的基本模式

  • 普通创建对象的方法,缺陷:
    • 如果创建多个对象会比较繁琐,效率低
    • 实例与原型之间,没有任何办法,可以看出有什么联系。

工厂模式

  • 工厂模式:使用创建并返回特定类型的对象的工厂函数(其实就是普通函数,没啥区别,只是叫法不同)
  • 创建过程类似于工厂生产产品的过程,即:原材料--加工--产品...
  • 解决了多次重复创建多个对象的麻烦。
  • 问题:
    • 创建出的实例之间没有内在的联系,不能反映出它们是同一个原型对象的实例。
    • 创建对象的时候没有使用 new 关键字
    • 会造成资源浪费,因为每生成一个实例,都增加一个重复的内容,多占用一些内存。

二、代码

 <!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>课堂演示</title>
</head>
<body>
<script>
//基本模式
var people1=new Object();
people1.name='孙悟空';
people1.weapon='金箍棒';
people1.run=function(){
return this.name+'的武器是'+this.weapon
}
// alert(people1.name)
//alert(people1.run()) //注意方法的调用需要加()
//该方法如果创建多个对象就会比较繁琐,如下......
var people2=new Object();
people2.name='猪八戒';
people2.weapon='钉耙';
people2.run=function(){
return this.name+'的武器是'+this.weapon
}
//工厂模式
function creatPeople(name,weapon){
var people=new Object() //可以类比为加工对象的原材料
people.name=name;
people.weapon=weapon;
people.run=function(){
return this.name+'的武器是'+this.weapon
} //以上步骤可以类比为加工对象的过程
return people //注意一定要讲创建的对象返回
//可以类比为产品加工完毕出厂的工作
}
var wukong=creatPeople('孙悟空','金箍棒');
var bajian=creatPeople('猪八戒','钉耙');
//alert(wukong.run())
//alert(bajian.run())
//new 关键字
function fun(){
alert(this)
}
fun()
new fun()
</script>
</body>
</html>

1、因为普通创建对象的方法繁琐重复效率低等诸多缺点,所以有了工厂模式

2、工厂模式就是一个简单的工厂,也是一个简单的函数,提供参数,来给你创建对象

3、工厂模式其实就是对普通创建对象进行了一点点的封装,很简单

4、对象的实质是变量,方法的实质是函数,属性的实质也是函数,所以工厂模式的基础就是函数变量之间是可以相互嵌套的

5、工厂模式就是用普通函数嵌套了 创建对象

上一篇:hdu 4277 USACO ORZ(dfs+剪枝)


下一篇:F650 led驱动