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; //调用对象方法