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和JQ的event对象区别分析
Nov 24 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
Nov 30 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
原生js实现简单的链式操作
Jul 04 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
Oct 28 jQuery
你可能不知道的CORS跨域资源共享
Mar 13 Javascript
Layui选项卡制作历史浏览记录的方法
Sep 28 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
Dec 30 jQuery
详解为element-ui的Select和Cascader添加弹层底部操作按钮
Feb 07 Javascript
JS使用for in有序获取对象数据
May 19 Javascript
三步搞定:Vue.js调用Android原生操作
Sep 07 Javascript
vue组件实现移动端九宫格转盘抽奖
Oct 16 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php实现的验证码文件类实例
2015/06/18 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
奇妙的js
2007/09/24 Javascript
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
浅谈vue中组件绑定事件时是否加.native
2019/11/09 Javascript
vue使用一些外部插件及样式的配置代码
2019/11/18 Javascript
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
python使用turtle库与random库绘制雪花
2018/06/22 Python
Python日期时间Time模块实例详解
2019/04/15 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
python实现字典嵌套列表取值
2019/12/16 Python
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
教师研修随笔感言
2014/01/23 职场文书
连带责任保证书
2014/04/29 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
基于Python实现股票收益率分析
2022/04/02 Python