码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript设计模式系列二

时间:2014-11-14 22:41:35      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   使用   sp   java   div   

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

  一、门户大开型。只能提供公用成员。所有属性和方法都公开的、可访问的。这些共用属性都要使用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设计模式系列二

标签:style   blog   io   color   ar   使用   sp   java   div   

原文地址:http://www.cnblogs.com/zhang-lei/p/4098216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!