当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JavaScript面向对象编程

Javascript
经常用到的JavasScript事件的翻译
Javascript下的keyCode键码值表
用javascript动态调整iframe高度的代码
javascript应用:Iframe自适应其加载的内容高度
javascript 控制弹出窗口
用javascript父窗口控制只弹出一个子窗口
给moz-firefox下添加IE方法和属性
FireFox中textNode分片的问题
对google个性主页的拖拽效果的js的完整注释[转]
身份证号码前六位所代表的省,市,区, 以及地区编码下载
一个友好的.改善的 Object.prototype.toString的实现
如何写一个通用的JavaScript效果库!(1/2)
如何写一个通用的JavaScript效果库!(2/2)
几个高效,简洁的字符处理函数
无语,javascript居然支持中文(unicode)编程!
ie 处理 gif动画 的onload 事件的一个 bug
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
firefox 和 ie 事件处理的细节,研究,再研究-----书写同时兼容ie和ff的事件处理代码
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
JavaScript 中的replace方法说明

Javascript 中的 JavaScript面向对象编程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 205 ::
收藏到网摘: n/a

暂时放弃js框架吧 开始写javascript的时候都是自己写,后来发现了prototype.js框架,发现很好用,就一直用的,他的对象创建方法被修改了,但很好用,再后来又转用jquery框架,受此框架影响,也不用自己创建类了,渐渐的竟然忘记了如何自己定义类了,猛的给一个一般方法,竟然看着别扭,混淆了很多东西,忘记了很多东西。今天回头整理下。 一下方法参考prototype.js //类的定义
//方法一:类的一般定义方法
function player1(_name)
{
this.name = _name;
this.say = function() {alert(this.name);};
}
var p1 = new player1('llinzzi1');
p1.say();

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

//方法三:上面的方法结构美观,便捷,但构建函数不能带参数,修改方法
var player3 = function() {
this.init.apply(this, arguments);
}
player3.prototype = {
init:function(_name){
this.name = _name;
},
say:function(){
alert(this.name);
}
}
var p3 = new player3('llinzzi3');
p3.say();
//类的继承
//方法一
var player4 = function(){
this.init.apply(this, arguments);
}
player4.prototype = new player3;
player4.prototype.shout = function(){
alert(this.name.toUpperCase());
}
var p4 = new player4('llinzzi4');
p4.shout();

//方法二 上面的方法不能采用{}的方法,修改方法
Object.extend = function(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
};
var player5 = function(){
this.init.apply(this, arguments);
}
Object.extend(Object.extend(player5.prototype,player3.prototype),{
shout:function(){
alert(this.name.toUpperCase());
}
});
var p5 = new player5('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);