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

  一、门户大开型。只能提供公用成员。所有属性和方法都公开的、可访问的。这些共用属性都要使用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. android app 架构设计02

    二:在开放的过程中,尽量把工具类,BaseActivity 放在指定的位置. DateFormat Bitmap Notification Shared Preference Environment ...

  2. hdu 1024(dp)

    传送门:Max Sum Plus Plus 题意:从n个数中选出m段不相交的连续子段,求这个和最大. 分析:经典dp,dp[i][j][0]表示不取第i个数且前i个数分成j段达到的最优值,dp[i][ ...

  3. Oracle 调用存储过程执行CRUD的小DEMO

    -----------------------------修改(表名,主键ID,要修改的列) create or replace procedure pro_code_edit(p_tbname in ...

  4. wpf dll和exe合并成一个新的exe

    原文:wpf dll和exe合并成一个新的exe 微软有一个工具叫ILMerge可以合并dll exe等,但是对于wpf的应用程序而言这个工具就不好用了.我的这方法也是从国外一个博客上找来的.仅供大家 ...

  5. 【Gapps】安装GooglePlay引发一系列问题

    再次感谢小海的支持,感谢大家的支持! 从安装CM至如今GooglePlay,小海为我提供了非常多方案,能够说是全面支持.仅仅是出于隐私不便公开他的个人信息,仅提供一个他的博客地址http://luha ...

  6. Windows内核

    每天我们都在使用Windows系统学习.编程.听音乐.玩游戏,Windows的操作想来是非常熟练了,但是你又对Windows究竟了解多少呢?本系列的目的,就是让你对Windows系统有个更直观.更清楚 ...

  7. Wix学习整理(1)——快速入门HelloWorld

    原文:Wix学习整理(1)--快速入门HelloWorld 1 Wix简介 Wix是Windows Installer XML的简称,其通过类XML文件格式来指定了用于创建Windows Instal ...

  8. poj3206(bfs+最小生成树)

    传送门:Borg Maze 题意:有一个迷宫,里面有一些外星人,外星人用字母A表示,#表示墙,不能走,空格可以走,从S点出发,在起点S和A处可以分叉走,问找到所有的外星人的最短路径是多少? 分析:分别 ...

  9. hdu3811(状态压缩dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3811 题目大意:给定1~N个数,求出至少满足一个条件的排列总数.M个条件如下:Ai位置的数为Bi 分析 ...

  10. 【剑指offer】面试题24:二叉搜索树的兴许前序遍历序列

    分析: 前序: 根 左 右 后序: 左 由 根 二叉搜索树: 左 < 根 < 右 那么这就非常明显了. def ifpost(postArray, start, end): #one or ...