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使用技巧精萃[代码非常实用]
Nov 21 Javascript
使图片旋转的3种解决方案
Nov 21 Javascript
js实现图片无缝滚动
Dec 23 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
基于 Node.js 实现前后端分离
Apr 23 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
微信小程序实现锚点定位楼层跳跃的实例
May 18 Javascript
原生js 封装get ,post, delete 请求的实例
Aug 11 Javascript
js实现黑白div块画空心的图形
Dec 13 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
vue excel上传预览和table内容下载到excel文件中
Dec 10 Javascript
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
一个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实现批量查询清除一句话后门的代码
2008/01/20 PHP
PHP读取word文档的方法分析【基于COM组件】
2017/08/01 PHP
php实现socket推送技术的示例
2017/12/20 PHP
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
实用框架(iframe)操作代码
2014/10/23 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
jQuery图片加载显示loading效果
2016/11/04 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
10种JavaScript最常见的错误(小结)
2019/06/21 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
Python实现控制台输入密码的方法
2015/05/29 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
高中军训感言600字
2014/03/11 职场文书
《夕阳真美》教学反思
2014/04/27 职场文书
创业培训计划书
2014/05/03 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
代理人委托书
2014/08/01 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
计划生育证明格式范本
2014/09/12 职场文书
统计学教授推荐信
2014/09/18 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
珍惜时间的诗歌赏析
2019/08/23 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL
python中使用redis用法详解
2022/12/24 Redis