zoukankan      html  css  js  c++  java
  • 面向对象 ( OO ) 的程序设计——创建对象

    本文地址:http://www.cnblogs.com/veinyin/p/7608000.html 

    为了避免大量重复代码产生,可采用以下方法创建对象

    1 工厂模式

     1 function createPerson(name,age,job){
     2     var o = new Object();
     3     o.name = name;
     4     o.age = age;
     5     o.job = job;
     6     return o;
     7 }
     8 
     9 var person1 = createPerson("Bob",23,"Doctor");
    10 var person2 = createPerson("Lily",21,"Student");

    其实就是一个函数,在函数里面创建一个对象,给对象赋上传过来的值,再把这个对象返回给调用的地方。

    2 构造函数模式

    1 function People(name, age, job){
    2     this.name = name;
    3     this.age = age;
    4     this.job = job;
    5 }
    6 
    7 var people1 = new People("Bob",23,"Doctor");
    8 var people2 = new People("Lily",21,"Student");  

    构造函数大家都知道,C++已经学过就不多说了。

    3 原型模式

     1 function Person(){}
     2 
     3 Person.prototype = {
     4     name: "Bob",
     5     age: 23,
     6     job: "Doctor"
     7 };
     8 
     9 var people1 = new Person();
    10 
    11 people1.name = "Lily";
    12 people1.age = 21;
    13 people1.job = "Student";

    这样把属性也给了 prototype,不太推荐。

    4 寄生构造函数模式

    代码就不贴了,工厂模式的定义,但是实例化方法类似于构造函数,使用 new 关键字

    • 实际创建自定义对象时会构造函数与原型模式混合使用,构造函数定义实例属性,原型模式定义方法和共享的属性,这样可以最大限度地节约内存

    感谢您的阅读及指正,让我们一起进步。
    欢迎联系我交流:veinyin@gmail.com
    作者:VeinYin
    博客地址:https://www.cnblogs.com/veinyin/
    如需转载请注明出处。
  • 相关阅读:
    Oracle优化器模式不同导致索引失效
    Python补零操作
    正则表达式
    python习题(二)
    Linux常见报错及解决方法(持续更新)
    总结(三)----2020上
    总结二
    总结---持更
    python多线程实现方式,最基础的实现方式模块是什么
    python2和python3区别
  • 原文地址:https://www.cnblogs.com/veinyin/p/7608000.html
Copyright © 2011-2022 走看看