javascript创建对象的方法--工厂模式(非常好理解)
一、简介
创建对象的方法
本质上都是把"属性"和"方法",封装成一个对象
创建对象的基本模式
- 普通创建对象的方法,缺陷:
- 如果创建多个对象会比较繁琐,效率低
- 实例与原型之间,没有任何办法,可以看出有什么联系。
工厂模式
- 工厂模式:使用创建并返回特定类型的对象的工厂函数(其实就是普通函数,没啥区别,只是叫法不同)
- 创建过程类似于工厂生产产品的过程,即:原材料--加工--产品...
- 解决了多次重复创建多个对象的麻烦。
- 问题:
- 创建出的实例之间没有内在的联系,不能反映出它们是同一个原型对象的实例。
- 创建对象的时候没有使用 new 关键字
- 会造成资源浪费,因为每生成一个实例,都增加一个重复的内容,多占用一些内存。
二、代码
1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="utf-8"> 5 <title>课堂演示</title> 6 </head> 7 <body> 8 <script> 9 //基本模式 10 var people1=new Object(); 11 people1.name='孙悟空'; 12 people1.weapon='金箍棒'; 13 people1.run=function(){ 14 return this.name+'的武器是'+this.weapon 15 } 16 // alert(people1.name) 17 //alert(people1.run()) //注意方法的调用需要加() 18 //该方法如果创建多个对象就会比较繁琐,如下...... 19 var people2=new Object(); 20 people2.name='猪八戒'; 21 people2.weapon='钉耙'; 22 people2.run=function(){ 23 return this.name+'的武器是'+this.weapon 24 } 25 //工厂模式 26 function creatPeople(name,weapon){ 27 var people=new Object() //可以类比为加工对象的原材料 28 people.name=name; 29 people.weapon=weapon; 30 people.run=function(){ 31 return this.name+'的武器是'+this.weapon 32 } //以上步骤可以类比为加工对象的过程 33 return people //注意一定要讲创建的对象返回 34 //可以类比为产品加工完毕出厂的工作 35 } 36 var wukong=creatPeople('孙悟空','金箍棒'); 37 var bajian=creatPeople('猪八戒','钉耙'); 38 //alert(wukong.run()) 39 //alert(bajian.run()) 40 //new 关键字 41 function fun(){ 42 alert(this) 43 } 44 fun() 45 new fun() 46 </script> 47 </body> 48 </html>
1、因为普通创建对象的方法繁琐重复效率低等诸多缺点,所以有了工厂模式
2、工厂模式就是一个简单的工厂,也是一个简单的函数,提供参数,来给你创建对象
3、工厂模式其实就是对普通创建对象进行了一点点的封装,很简单
4、对象的实质是变量,方法的实质是函数,属性的实质也是函数,所以工厂模式的基础就是函数变量之间是可以相互嵌套的
5、工厂模式就是用普通函数嵌套了 创建对象