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

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

  1. javascript设计模式系列二-封装

    JavaScript封装: var Book = function (id, name, price) { this.id = id, this.name = name, this.price = p ...

  2. javascript设计模式系列

    javascript设计模式系列   创建型: 1.抽象工厂模式(Abstract Factory) 2.构建者模式(Builder) 3.工厂方法模式(Factory Method) 4.原型模式( ...

  3. JavaScript 闭包系列二(匿名函数及函数的闭包)

    一. 匿名函数 1. 函数的定义,可分为三种 1) 函数声明方式 function double(x) {     return 2*x; } 2)Function构造函数,把参数列表和函数体都作为字 ...

  4. 【JavaScript设计模式系列---开篇预览】

    转:http://www.cnblogs.com/Darren_code/archive/2011/08/31/JavascripDesignPatterns.html 2011-08-31 23:5 ...

  5. Javascript设计模式系列三

    继承,一个类或对象继承另一个类或对象的三种方法.类式继承.原型式继承.掺元类. 一.类式继承,原型链.Extend函数. <script type="text/javascript&q ...

  6. Javascript设计模式系列一

    定义类,方法赋值给prototype属性各种写法: 方法一: <script type="text/javascript"> ////定义Message类 var Me ...

  7. Javascript数组系列二之迭代方法1

    我们在<Javascript数组系列一之栈与队列 >中介绍了一些数组的用法.比如:数组如何表现的和「栈」一样,用什么方法表现的和「队列」一样等等一些方法,因为 Javascript 中的数 ...

  8. javaScript 设计模式系列之二:适配器模式

    介绍 适配器模式将一个类的接口转接成用户所期待的,有助于避免大规模改写现有客户代码. In software engineering, the adapter pattern is a softwar ...

  9. javaScript 设计模式系列之一:观察者模式

    介绍 观察者模式又叫发布订阅模式(Publish/Subscribe),一个目标对象管理所有相依于它的观察者对象.该模式中存在两个角色:观察者和被观察者.目标对象与观察者之间的抽象耦合关系能够单独扩展 ...

随机推荐

  1. oschina图形和图像工具开源软件

    图形和图像工具开源软件 http://www.oschina.net/project/tag/181/imagetools?sort=view&lang=21&os=0

  2. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  3. java垃圾回收那点事(二)不同gc策略的heap分配

    在前面的文章中曾提到了在java虚拟机启动的时候会对G1,CMS, SerialGC定义不同的heap的类,并且定义不同的policy. CollectorPolicy CollectorPolicy ...

  4. POJ3313 【随便写了个spfa就一A了,嗨皮】

    我顺便明白了....英文题意理解其实好大一部分还是靠感觉,然后自己猜题意,试题意. 你要是纠结于英文你就跪了. #include <iostream> #include <cstdi ...

  5. OCP读书笔记(11) - 使用闪回技术II

    闪回归档 1. 什么是闪回数据归档? 闪回归档是用来保存一个或多个表的历史数据的新数据库对象,以及该数据的存储保留和清除策略.归档只是保存数据库中一个或多个表的所有事务处理的变化的一个或多个表空间,数 ...

  6. cocos2d-x3.2下使用Umeng 64位SDK注意事项

    友盟官方的样例中已经有了Cocos2d-x的Demo使用起来也是比較方便的.但在64位的版本号使用时须要注意 32位SDK改动: 将Xcode中Build Settings的Architectures ...

  7. cocos2dx-3.0(1)------win7 32位android环境搭建

    參照链接http://blog.csdn.net/wonengxing/article/details/23601359 ----我的生活,我的点点滴滴!! 一. Android工具安装 1. 安装J ...

  8. cocos2.2.3 HelloCpp TestCpp android 环境搭建 编译

    cygwin make PATH->E:\cygwin\bin JAVA_HOME->C:\Program Files\Java\jdk1.8.0_05 Eclipse->Windo ...

  9. 关于CodeReview(java)(转)

    关于codereview,在平时的开发中,经常忽略的环节,参照目前介绍写好代码的几本书和之前掉进的坑,做了一个总结,分享出来. 为什么要做 通过review规避一些代码层面的问题 提升可读性,方便后续 ...

  10. poj2236(并查集)

    题目连接 题意:一张图上分布着n台坏了的电脑,并知道它们的坐标.两台修好的电脑如果距离<=d就可以联网,也可以通过其他修好的电脑间接相连.给出操作“O x”表示修好x,给出操作“S x y”,请 ...