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 相关文章推荐
JS event使用方法详解
Apr 28 Javascript
学习并汇集javascript匿名函数
Nov 25 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
Oct 29 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
Mar 11 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
关于vue.js弹窗组件的知识点总结
Sep 11 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
AngularJS监听ng-repeat渲染完成的方法
Mar 20 Javascript
vue配置font-awesome5的方法步骤
Jan 27 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 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+java实现自动新闻滚动窗口
2006/10/09 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
PHP实现百度人脸识别
2019/05/06 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
jquery validate 自定义验证方法介绍 日期验证
2014/02/27 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
基于javascript实现仿百度输入框自动匹配功能
2016/01/03 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
让python的Cookie.py模块支持冒号做key的方法
2010/12/28 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
利用python实现逐步回归
2020/02/24 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
面包店的创业计划书范文
2014/01/16 职场文书
安全检查管理制度
2014/02/02 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
合作意向书
2014/07/30 职场文书
2015年派出所工作总结
2015/04/24 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
怎么禁用Win11输入法 最新Win11输入法关闭教程
2022/08/05 数码科技