zoukankan      html  css  js  c++  java
  • javascript 高级编程系列

    1. 工厂模式

     1 function createPerson(name, age)
     2  {
     3      var obj = {};
     4      obj.name = name;
     5      obj.age = age;
     6      obj.getName = function(){
     7          return this.name;
     8      };
     9      return obj;
    10 }
    11 
    12 var person = createPerson('leon', 30);

    2. 构造函数模式

     1 function Person(name, age)
     2 {
     3     this.name = name;
     4     this.age = age;
     5     this.getName = function(){
     6         return this.name;
     7     };
     8 }
     9 
    10 var person = new Person('leon', 30 );

    3. 原型模式 (多个对象实例之间共享属性值和方法)

     1 function Person(){
     2 
     3 }
     4  
     5 Person.prototype = {
     6      constructor: Person,
     7      name: 'leon',
     8      age: 30,
     9      getName: function(){
    10          return this.name;
    11      }
    12 };
    13 
    14 var person = new Person();

    4. 组合构造函数和原型模式 (构造函数模式与原型模式的结合,属性在构造函数中进行定义,方法在原型中定义)

     1 function Person(name, age)
     2 {
     3      this.name = name;
     4      this.age = age;
     5 }
     6 
     7 Person.prototype = {
     8     constructor: Person,
     9     getName :  function(){
    10           return this.name;
    11     }
    12 };
    13 
    14 var person = new Person('leon', 30 );

    5.动态原型模式 (原型模式的改进为了更好的体现封装)

     1 function Person(name, age)
     2 {
     3       this.name = name;
     4       this.age = age;
     5       if( typeof this.getName != 'function'){
     6           Person.prototype.getName = function(){
     7               return this.name;
     8           }
     9       }
    10 }

    6. 寄生构造函数模式 (工厂模式与构造函数的结合)

     1 function Person(name, age)
     2  {
     3      var obj = {};
     4      obj.name = name;
     5      obj.age = age;
     6      obj.getName = function(){
     7          return this.name;
     8      };
     9      return obj;
    10 }
    11 
    12 var person = new Person('leon', 30);

    7. 稳妥构造函数模式 (工厂模式的安全版,无公共属性,方法中无this引用)

     1 function Person(name, age)
     2  {
     3      var obj = {};
     4      var name =  name;
     5      var age  = age;
     6      obj.getName = function(){
     7          return name;
     8      };
     9      return obj;
    10 }
    11 
    12 var person = Person('leon', 30);
  • 相关阅读:
    我的编辑辅助工具
    一点BREW开发的资料
    XCode 4.2.1 (iOS SDK 5.0) for Lion
    C Style SEH handling Example
    OWC中双刻度图表的实现(转自网络)
    浅谈MAXIMO项目实施(转)
    GridView 72般绝技
    MAXIMO表学习总结(转)
    一SQL语句.
    网站根目录下的 cert/ 目录中有bazs.cert文件,可是http://网站地址/cert/bazs.cert 就是提示HTTP 404 的解决方法
  • 原文地址:https://www.cnblogs.com/xiaodi-js/p/5926077.html
Copyright © 2011-2022 走看看