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 相关文章推荐
方便实用的jQuery checkbox复选框全选功能简单实例
Oct 09 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
jQuery中[attribute!=value]选择器用法实例
Dec 31 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
Jan 25 Javascript
Vue resource三种请求格式和万能测试地址
Sep 26 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
layui数据表格重载实现往后台传参
Nov 15 Javascript
js实现计时器秒表功能
Dec 16 Javascript
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
vue实现员工信息录入功能
Jun 11 Javascript
React如何使用axios请求数据并把数据渲染到组件
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四大安全策略
2014/03/12 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
vue实现数字滚动效果
2020/06/29 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python与Redis的连接教程
2015/04/22 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
Python对切片命名的实现方法
2018/10/16 Python
Python3数字求和的实例
2019/02/19 Python
如何爬取通过ajax加载数据的网站
2019/08/15 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
如何教少儿学习Python编程
2020/07/10 Python
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
《小小雨点》教学反思
2014/02/18 职场文书
员工入职担保书范文
2014/04/01 职场文书
股份合作协议书
2014/04/12 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
临床医学生职业规划书范文
2014/10/25 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
我收到了德劲DE1107
2022/04/05 无线电