zoukankan      html  css  js  c++  java
  • 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设计模式。

  • 相关阅读:
    7月23日 R进行层次聚类算法的继续完善
    明天学习的内容
    MySql快速导出为excel文件
    数据挖掘的隐私边界 【转自《中欧商业评论》】
    【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
    7月20日下一步工作
    R对term进行kmeans聚类完整实例(tm包)
    数学之美 系列一 统计语言模型
    7月30日总结
    MathType输入Support 自动分开的问题
  • 原文地址:https://www.cnblogs.com/zhang-lei/p/4098216.html
Copyright © 2011-2022 走看看