JavaScript面向对象编程


Posted in Javascript onMarch 02, 2008

//类的定义

    //方法一:类的一般定义方法
    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);

Javascript 相关文章推荐
用 JavaScript 迁移目录
Dec 18 Javascript
javascript来定义类的规范小结
Nov 19 Javascript
Jquery实现显示和隐藏的4种简单方式
Aug 28 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
JS实现的文字与图片定时切换效果代码
Oct 06 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
Sep 08 Javascript
bootstrap table表格插件使用详解
May 08 Javascript
浅谈vue-cli 3.0.x 初体验
Apr 11 Javascript
Vue.js轮播图走马灯代码实例(全)
May 08 Javascript
vue中的mescroll搜索运用及各种填坑处理
Oct 30 Javascript
一个javascript参数的小问题
Mar 02 #Javascript
js加解密 脚本解密
Feb 22 #Javascript
JS应用之禁止抓屏、复制、打印
Feb 21 #Javascript
js 调整select 位置的函数
Feb 21 #Javascript
js 替换
Feb 19 #Javascript
javascript replace方法与正则表达式
Feb 19 #Javascript
window.addeventjs事件驱动函数集合addEvent等
Feb 19 #Javascript
You might like
无线电广播的开始
2002/01/30 无线电
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
基于jquery的商品展示放大镜
2010/08/07 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
Javascript监视变量变化的方法
2015/06/09 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
JS加载iFrame出现空白问题的解决办法
2016/05/13 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
nodejs中使用worker_threads来创建新的线程的方法
2021/01/22 NodeJs
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
用实例分析Python中method的参数传递过程
2015/04/02 Python
python自定义异常实例详解
2017/07/11 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
Python实现像awk一样分割字符串
2020/09/15 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
秦兵马俑教学反思
2014/02/07 职场文书
战友聚会主持词
2014/04/02 职场文书
机关出纳岗位职责
2014/04/03 职场文书
学历公证委托书
2014/04/09 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
个人委托书怎么写
2014/09/17 职场文书
付款委托书范本
2014/10/05 职场文书
社区灵活就业证明
2014/11/03 职场文书
死亡赔偿协议书
2015/01/28 职场文书
大明湖导游词
2015/02/03 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Python爬虫网络请求之代理服务器和动态Cookies
2022/04/12 Python