zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    IOS开发之----设置UITableView背景色和选中背景色
    IOS开发之 ---- iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)
    iOS如何将你的程序打包成ipa
    苹果企业开发者账号申请记录
    UIButton上图片和文字的位置调整
    试图添加进 ScrollerVier 的视图里,默认下移64个像素
    NetworkManger解析 xcode7.0以上要改字段
    iOS 登录功能的实现
    keyboard和 UITextFiled 之间的处理
    curator zookeeper监控。SpiderWatcher
  • 原文地址:https://www.cnblogs.com/py1994/p/5985523.html
Copyright © 2011-2022 走看看