JavaScript语言——对象
//对象
//在这里我们定义了一个猫对象,它包含一个名字属性,一个大笑声属性,和一个哭的方法。
var Cat={//定义一个猫对象
name:'Persian', //它叫波斯猫
lol:(function(){//定义一个大声笑的声音
var s='meow';
return s+'...'+s+' ';
})(),//注意这里()立即执行方法,返回叫声赋给lol
cry:function(){//定义一个哭的方法
var s='wuuu';
return this.name+' 哭了:'+s+'...'+s+' ';//这里是一个闭包
}
};
//下面我们来看看效果
document.write(Cat.name+' 高兴时的叫:'+Cat.lol +' '+Cat.cry() +"</br>");
/*输出
Persian 高兴时的叫:meow...meow Persian 哭了:wuuu...wuuu
*/
//构造器
//定义一个老鼠的构造器
var Mouse=function(name){
this.name=name||'老鼠喽啰';//构造函数以this关键字区分于函数
}
/*
var mouse=Mouse('Mickey'); //错误的实例化,忘记了加new关键字
document.write(mouse); //undefined 未定义,因为方法没有任何返回
document.write(name); //会输出Mickey,因为错误的忘了加new关键字,导致定义的是一个方法,而这个方法Mouse('Mickey')执行后导致this.name=name,name变成了全局成员了。
*/
var Animal={//定义动物对象
run:function(){ alert('running!'); }
}
Mouse.prototype=Animal;//原型(继承)动物对象
var Mi=new Mouse('Mickey');//构造的是米老鼠
document.write(Mi.name);//Mickey
Mi.run();//调用父类run的方法,跑起来。
//在这里我们定义了一个猫对象,它包含一个名字属性,一个大笑声属性,和一个哭的方法。
var Cat={//定义一个猫对象
name:'Persian', //它叫波斯猫
lol:(function(){//定义一个大声笑的声音
var s='meow';
return s+'...'+s+' ';
})(),//注意这里()立即执行方法,返回叫声赋给lol
cry:function(){//定义一个哭的方法
var s='wuuu';
return this.name+' 哭了:'+s+'...'+s+' ';//这里是一个闭包
}
};
//下面我们来看看效果
document.write(Cat.name+' 高兴时的叫:'+Cat.lol +' '+Cat.cry() +"</br>");
/*输出
Persian 高兴时的叫:meow...meow Persian 哭了:wuuu...wuuu
*/
//构造器
//定义一个老鼠的构造器
var Mouse=function(name){
this.name=name||'老鼠喽啰';//构造函数以this关键字区分于函数
}
/*
var mouse=Mouse('Mickey'); //错误的实例化,忘记了加new关键字
document.write(mouse); //undefined 未定义,因为方法没有任何返回
document.write(name); //会输出Mickey,因为错误的忘了加new关键字,导致定义的是一个方法,而这个方法Mouse('Mickey')执行后导致this.name=name,name变成了全局成员了。
*/
var Animal={//定义动物对象
run:function(){ alert('running!'); }
}
Mouse.prototype=Animal;//原型(继承)动物对象
var Mi=new Mouse('Mickey');//构造的是米老鼠
document.write(Mi.name);//Mickey
Mi.run();//调用父类run的方法,跑起来。