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 相关文章推荐
ModelDialog JavaScript模态对话框类代码
Apr 17 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
Nov 26 Javascript
Three.js学习之几何形状
Aug 01 Javascript
AngularJS 教程及实例代码
Oct 23 Javascript
微信小程序实现传参数的几种方法示例
Jan 10 Javascript
React Form组件的实现封装杂谈
May 07 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
Sep 28 Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 jQuery
vue中如何添加百度统计代码
Dec 19 Vue.js
pnpm对npm及yarn降维打击详解
Aug 05 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
php字符串替换函数substr_replace()用法实例
2015/03/17 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
让iframe自适应高度(支持XHTML,支持FF)
2007/07/24 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
js实现在同一窗口浏览图片
2014/09/17 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
javascript常用的方法整理
2015/08/20 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
Vue实现搜索 和新闻列表功能简单范例
2018/03/16 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
python 获取字符串MD5值方法
2018/05/29 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python开发入门——set的使用
2020/09/03 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
学前教育教师求职自荐信
2013/09/22 职场文书
优秀实习生感言
2014/03/01 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
亮剑观后感
2015/06/05 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL