面向对象的程序设计

2018-03-22  本文已影响0人  令武

第一种

这种方式有非常大的弊端,就是每次都要新建一个对象,然后添加属性、方法,会产生大量重复代码。

var group = new Object();

    group.arr = [11,23,22,13,45,23,43,10];

    group.sums = function(){

      var sum = 0;

      var x;

    //  for(var i = 0; i < group.arr.length; i++){

    //      sum += group.arr[i]

    //  }

      for(x in group.arr){

          sum += group.arr[x]

      }

      console.log('普通函数',sum) 

    }

    group.sums()

第二种:工厂模式

工厂模式,外部创建一个函数,里面创建一个对象。记得return 对象。

function createGroup(muster){

      var o = new Object()

      o.muster = muster;

      o.createSum = function(){

        var sum = 0;

        var x; 

        for(x in this.muster){

          sum += this.muster[x]

        }

        console.log('工厂模式',sum);

      }

      return o;  // 记得return o

    }

    arr = [11,23,22,13,45,23,43,10];

    var group1 = createGroup(arr);

    group1.createSum()

第三种:构造函数模式

构造函数模式,外部创建一个函数,里面以this的形式。调用记得加new

function createGroup2(muster2){

      this.muster2 = muster2;

      this.createSum2 = function(){

        var sum = 0;

        var x;

        for(x in this.muster2){

            sum += this.muster2[x];

        }

        console.log('构造函数模式',sum);

      }

    }

    arr2 = [11,23,22,13,45,23,43,10];

    var group2 = new createGroup2(arr2);

    group2.createSum2()

第四种:原型模式

function createGroup3(muster3){

      this.muster3 = muster3;

    }           

    createGroup3.prototype.sum = function(){

            var sum = 0;

            var x;

            for(x in this.muster3){

                sum += this.muster3[x];

            }

            console.log('原型模式', sum)

    }

    arr3 = [11,23,22,13,45,23,43,10];

    var group3 = new createGroup3(arr3);

    group3.sum();

第五种:组合使用构造函数模式和原型模式

function createGroup4(muster4){

      this.muster4 = muster4;

    }           

    createGroup4.prototype = {

        constructor:createGroup4,

        sum:function(){

            var sum = 0;

            var x;

            for(x in this.muster4){

                sum += this.muster4[x];

            }

            console.log('组合使用构造函数模式和原型模式', sum)

        }

    }

    arr4 = [11,23,22,13,45,23,43,10];

    var group4 = new createGroup4(arr4);

    group4.sum();

第六种:

简单粗暴地理解js原型链--js面向对象编程(转载)

http://www.cnblogs.com/qieguo/p/5451626.html

上一篇下一篇

猜你喜欢

热点阅读