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设计模式。

上一篇:Visual Leak Detector(vld)无法显示内存泄露文件名称与行号


下一篇:javascript设计模式系列二-封装