美文网首页
面向对象的程序设计

面向对象的程序设计

作者: 令武 | 来源:发表于2018-03-22 22: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

    相关文章

      网友评论

          本文标题:面向对象的程序设计

          本文链接:https://www.haomeiwen.com/subject/wzunqftx.html