JavaScript基础-面向对象编程<2>

2.动态添加,修改和删除对象属性和方法

例如:用类Object()创建一个空对象user,然后修改其行为。

(1) 添加属性

var user=new Object(); //创建一个没有属性和方法的空对象
user.name="jack"; //添加属性name
user.age=21; //添加属性age
user.sex="male"

若输出结果,可用alert(user.name)等语句进行显示。

(2)添加方法

针对前面的空对象user,添加一个方法 alert():

user.alert=function(){
        alert("my name is:"+this.name);
  }

调用:user.alert(); //可显示其名字为jack

(3)修改属性和方法

修改就是用新属性替换旧属性。

例如:

user.name="tom";
user.alert=function(){
      alert("hello,"+this.name); //这时的方法中name属性已经已经替换为tom
}

若用弹出对话框显示其内容,user.alert()值为 "hello,tom"。

(4)删除属性和方法

其实,删除属性或方法就是将其值定义为undefined,即

user.name=undefined;
user.alert=undefined;

3.使用大括号语法创建无类型对象

其语法为:

{
    property1:statement,
    property2:statement,
    .......,
    propertyN:statementN

}

这里通过使用大括号,使多个属性或方法成为一个组,实现对象的定义。

 示例 :使用大括号语法创建一对象

<script language="javascript" type="text/javascript">
   var obj={ }; //定义一个空对象, 等同于 var obj=new Object();
   var user={
           name:"jack", //定义name属性并赋初值
           favoriteColor:["red","green","black"], //定义颜色数组
           hello:function(){ //定义方法
                    alert("hello"+this.name);
              },
           sex:"male"
   }
      user.hello(); //调用方法

</script> 

4.prototype对象

每个函数其实也是一个对象,它们对应的类是 function. 它们具有特殊的身份,每个函数对象都具有一个子对象prototype,即prototype表示了该函数的原型。而函数也是

类,prototype就是表示了一个类的成员集合。

 既然 protoype是一个对象,也可以动态地对其属性和方法进行修改

 例如:

function class1(){
     // 空函数
}

class1.protoype.method=function(){ // 增加方法
         
           alert("it's a text method");
}
    var obj1 =new class1();
    obj1.method; //调用对象方法

 

posted @ 2015-05-10 11:02  BlinZhang  阅读(197)  评论(0编辑  收藏  举报