zoukankan      html  css  js  c++  java
  • 工厂模式和构造函数

    工厂模式和构造函数

    //工厂模式
    function createObject(name,age){
    var box = new Object();
         box.name = name;
         box.age = age;
         box.run = function(){
            return this.name + this.age +'运行中..';
         }
         return box;
    }
    
    //批量生产
    var box1 = createObject('lee','100');
    
     
     
     //构造函数
     
     function Box(username, age){
        this.name = username;
        this.age = age;
        this.run = function (){
            return this.name +this.age +'运行2';
        };    
     }
     
     var box2 = new Box('A','1'); 
     alert(box2.run());
     
     
     var o = new Object();
      Box.call(o,'leee',100); //对象冒充
      alert(o.run());

     
    使用了构造函数的方法,和使用工厂模式的方法他们不同之处如下:
    1.构造函数方法没有显示的创建对象(new Object());
    2.直接将属性和方法赋值给this对象;
    3.没有return语句。

    构造函数的方法有一些规范:
    1.函数名和实例化构造名相同且大写,(PS:非强制,但这么写有助于区分构造函数和普通函数);
    2.通过构造函数创建对象,必须使用new运算符。
    既然通过构造函数可以创建对象,那么这个对象是哪里来的,newObject()在什么地方执行了?执行的过程如下:


    1.当使用了构造函数,并且new构造函数(),那么就后台执行了newObject();
    2.将构造函数的作用域给新对象,(即newObject()创建出的对象),而函数体内的this就
    代表newObject()出来的对象。
    3.执行构造函数内的代码;
    4.返回新对象(后台直接返回)。

    构造函数是引用类型是按址引用的。所以里面的方法的调用是不相等的。

  • 相关阅读:
    idea 中main 方法运行错误二
    shiro 忘记加密后的密码怎么办?
    idea 中 Caused by: java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
    Date 类型的比较
    oracle中数据类型对应java类型[转载]
    mybitis面试题基础必考 Mybatis 中$与#的区别
    301
    201
    0
    Apache负载 均衡
  • 原文地址:https://www.cnblogs.com/jinbiao/p/2758872.html
Copyright © 2011-2022 走看看