Javascript设计模式系列二

  创建对象的基本模式,一、门户大开型,二、采用下划线来表示属性和方法的私用性,三、使用闭包来创建私用的成员。

  一、门户大开型。只能提供公用成员。所有属性和方法都公开的、可访问的。这些共用属性都要使用this关键字来创建。

  <script type="text/javascript">



        ////定义Dog对象

        var Dog = function (name, age) {

            this.name = name;

            this.age = age;

        }



        Dog.prototype.SayHello = function () {

            ///弹出消息

            alert(this.name+this.age)

        }



        ////实例化对象

        var dog = new Dog("Auto", 3)

        ////打招呼

        dog.SayHello();



    </script>

  二,采用下划线来表示属性和方法的私用性。

 <script type="text/javascript">



        ////定义Dog对象

        var Dog = function (name, age) {

            this.setName(name);

            this.setAge(age);

        }



        Dog.prototype = {

            setName: function (name) { 

                this._name= name;        

             },

             getName:function(){

             return this._name;

             },

             setAge:function(age){

                this._age=age;

             },

             getAge:function(){

             return this._age;

             },

             SayHello:function () {

                ///弹出消息

                alert(this._name+this._age)

             }

        }



        ////实例化对象

        var dog = new Dog("Auto", 3)

        ////打招呼

        dog.SayHello();

        dog.setName("cc")

        alert(dog.getName())

        alert(dog.getAge())

    </script>

  三、使用闭包来创建私用的成员。在Javascript中,函数具有作用域,也就是说, 在一个函数内部声明的变量在函数外部是无法访问的。定义一个函数中的变量在该函数的内嵌函数中是可以访问的。

 <script type="text/javascript">



        ////定义Dog对象

        var Dog = function (name, age) {

            var name, age;

            this.setName = function (name) {

                name = name;

            };

            this.setAge = function (age) {

                age = age;

            };

            this.getName = function () {

                return name;

            };

            this.getAge = function () {

                return age;

            };

        };



        ////实例化对象

        var dog = new Dog("Auto", 3)

        alert(dog.getName())

        alert(dog.getAge())

       

    </script>

  本文源于:Javascript设计模式。

你可能感兴趣的:(JavaScript)