JavaScript面向对象编程

时间:2021-05-26

//类的定义

//方法一:类的一般定义方法
functionplayer1(_name)
{
this.name=_name;
this.say=function(){alert(this.name);};
}

varp1=newplayer1('llinzzi1');
p1.say();


//方法二:prototype定义方法
varplayer2=function(){}
player2.prototype={
name:'',
say:function(){
alert(this.name);
}
}

varp2=newplayer2();
p2.name='llinzzi2';
p2.say();


//方法三:上面的方法结构美观,便捷,但构建函数不能带参数,修改方法
varplayer3=function(){
this.init.apply(this,arguments);
}
player3.prototype={
init:function(_name){
this.name=_name;
},
say:function(){
alert(this.name);
}
}

varp3=newplayer3('llinzzi3');
p3.say();

//类的继承

//方法一
varplayer4=function(){
this.init.apply(this,arguments);
}
player4.prototype=newplayer3;
player4.prototype.shout=function(){
alert(this.name.toUpperCase());
}

varp4=newplayer4('llinzzi4');
p4.shout();


//方法二上面的方法不能采用{}的方法,修改方法
Object.extend=function(destination,source){
for(varpropertyinsource)
destination[property]=source[property];
returndestination;
};

varplayer5=function(){
this.init.apply(this,arguments);
}
Object.extend(Object.extend(player5.prototype,player3.prototype),{
shout:function(){
alert(this.name.toUpperCase());
}

});

varp5=newplayer5('llinzzi5');
p5.shout();




//再从prototype.js抄一端浏览器判断代码

Browser={
IE:!!(window.attachEvent&&!window.opera),
Opera:!!window.opera,
WebKit:navigator.userAgent.indexOf('AppleWebKit/')>-1,
Gecko:navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('KHTML')==-1,
MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
}

alert(Browser.MobileSafari);

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章