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>