JavaScript面向对象高级

json方式的面向对象

把方法包在一个json里
有人管他叫——命名空间
在公司里,把同一类方法,包在一起

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script type="text/javascript">
    var json = {
        name:'blue',
        qq:'2324235',
        showName: function (){
            alert('我的名字叫:'+this.name);
        },
        showQQ: function(){
            alert('我的qq号是:'+this.qq);
        }
    }

    json.showName();
    json.showQQ();
</script>
</head>
<body>

</body>
</html>

不适合多个对象,只有一个对象

拖拽和继承

面向对象的拖拽
改写原有拖拽
对象的继承
什么是继承
在原有类的基础上,略作修改,得到一个新的类
不影响原有类的功能
instanceof运算符
查看对象是否是某个类的实例

使用继承

限制范围的拖拽类
构造函数伪装
属性的继承
原理:欺骗构造函数
call的使用
call可以改变函数中的this

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<script type="text/javascript">
    function A(){
        this.abc = 12;
    }
    A.prototype.show = function (){
        alert(this.abc);
    }

    //继承A
    function B(){
        A.call(this);
    }

    /*var obj = new B();
    alert(obj.abc);//弹出结果为12*/

    //B.prototype = A.prototype;
    for (var i in A.prototype) {
        B.prototype[i] = A.prototype[i];
    };

    B.prototype.fn = function (){
        alert('abc');
    }
    var obj = new B();
    obj.fn();//弹出结果为12
    var objA = new A();

</script>
</head>
<body>

</body>
</html>

原型链
方法的继承
原理:复制方法
覆盖原型和方法复制

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
<style type="text/css">
    #div1 {
        width: 200px;
        height: 200px;
        background: yellow;
        position: absolute;
    }
    #div2 {
        width: 200px;
        height: 200px;
        background: blue;
        position: absolute;
    }
</style>
<script type="text/javascript" src="Drag.js"></script>
<script type="text/javascript" src="Drag1.js"></script>
<script type="text/javascript">
    window.onload = function(){
        new Drag('div1');
        new LimitDrag('div2');
    }
</script>
</head>
<body>
    <div id="div1">普通</div>
    <div id="div2">限制</div>
</body>
</html>

系统对象

本地对象(非静态对象)
什么是本地对象
常用对象
Object、Function、Array、String、Boolean、Number、Data、RegExp、Error
内置对象(静态对象)
什么是本地对象
Global、Math
宿主对象(由浏览器提供的对象)
DOM、BOM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值