JavaScript面向对象编程
JavaScript面向对象编程
发布时间:2016-12-30 来源:查字典编辑
摘要://类的定义//方法一:类的一般定义方法functionplayer1(_name){this.name=_name;this.say=fu...

//类的定义

//方法一:类的一般定义方法

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);

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类