• 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>

  • 相关阅读:
    Majority Element
    Longest Increasing Subsequence
    Count Primes
    Valid Parentheses
    Largest Rectangle in Histogram
    Linked List Cycle II
    Linked List Cycle
    Evaluate Reverse Polish Notation
    Longest Valid Parentheses
    适配总结
  • 原文地址:https://www.cnblogs.com/py1994/p/5985523.html
Copyright © 2020-2023  润新知