JavaScript面向对象编程
更新时间:2008年03月02日 14:53:04 作者:
暂时放弃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);
//方法一:类的一般定义方法
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);
您可能感兴趣的文章:
- JS面向对象、prototype、call()、apply()
- 面向对象的Javascript之二(接口实现介绍)
- JS面向对象编程之对象使用分析
- JS 面向对象之神奇的prototype
- ExtJS4 组件化编程,动态加载,面向对象,Direct
- javascript面向对象入门基础详细介绍
- JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
- JS 拼图游戏 面向对象,注释完整。
- JAVASCRIPT THIS详解 面向对象
- javascript 面向对象全新理练之数据的封装
- JS面向对象编程浅析
- 同一页面多个商品倒计时JS 基于面向对象的javascript
- javascript 面向对象编程基础 多态
- javascript 面向对象,实现namespace,class,继承,重载
- 解析JavaScript面向对象概念中的Object类型与作用域
相关文章
Js模块打包exports require import的用法和区别
这篇文章主要介绍了Js模块打包exports require import的用法和区别,对模块打包感兴趣的同学,可以参考下2021-05-05javascript中的try catch异常捕获机制用法分析
这篇文章主要介绍了javascript中的try catch异常捕获机制,简单分析了try catch异常捕获机制的基本定义与使用方法,需要的朋友可以参考下2016-12-12网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
这篇文章主要介绍了网站发布到IIS后Bootstrap框架引用的woff字体无法正常显示的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-11-11
最新评论