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 模板的应用示例
Nov 12 Javascript
js 获取、清空input type="file"的值(示例代码)
Dec 24 Javascript
Javascript调用函数方法的几种方式介绍
Mar 20 Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 Javascript
Js动态设置rem来实现移动端字体的自适应代码
Oct 14 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
Feb 08 Javascript
vue2.0 中使用transition实现动画效果使用心得
Aug 13 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
Apr 02 Javascript
vue之a-table中实现清空选中的数据
Nov 07 Javascript
Vue前端项目部署IIS的实现
Jan 06 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 Javascript
react的hooks的用法详解
Oct 12 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
linux下 C语言对 php 扩展
2008/12/14 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
vue.js根据代码运行环境选择baseurl的方法
2018/02/28 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
python实现读取命令行参数的方法
2015/05/22 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
python aiohttp的使用详解
2019/06/20 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
运动会领导邀请函
2014/01/10 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android