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获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
Dec 17 Javascript
Js与Jq 获取页面元素值的方法和差异对比
Apr 30 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
Jun 14 Javascript
javascript实现控制的多级下拉菜单
Jul 05 Javascript
基于Bootstrap实现tab标签切换效果
Apr 15 Javascript
JS去除重复并统计数量的实现方法
Dec 15 Javascript
微信小程序 密码输入(源码下载)
Jun 27 Javascript
js html实现计算器功能
Nov 13 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
Feb 12 Javascript
vue渲染方式render和template的区别
Jun 05 Javascript
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
JavaScript实现外溢动态爱心的效果的示例代码
Mar 21 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 输出简单动态WAP页面
2009/06/09 PHP
php设计模式 Adapter(适配器模式)
2011/06/26 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
ThinkPHP3.1新特性之多层MVC的支持
2014/06/19 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
jquery重复提交请求的原因浅析
2014/05/23 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
2014/09/01 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
Python json格式化打印实现过程解析
2020/07/21 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
EJB的几种类型
2012/08/15 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
经典的班主任推荐信
2013/10/28 职场文书
周鸿祎:教你写创业计划书
2013/12/30 职场文书
党员评议个人总结
2014/10/20 职场文书
社区宣传标语口号
2015/12/26 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
Win11更新失败并提示0xc1900101
2022/04/19 数码科技