美文网首页
继承学习心得

继承学习心得

作者: 嫚荹囩鍴 | 来源:发表于2017-10-13 09:03 被阅读0次

万物皆对象,函数也是对象的一种,函数有原型对象,我们可以通过原型对象来继承其他对象的属性跟方法,比如,我们构造一个具有拖拽功能的函数对象:

function DragBox(boxId) {
    if (boxId == undefined) {
        return;
    }
    this.ele = document.getElementById(boxId);
    var self = this;
    this.ele.onmousedown = function(e) {
        e.preventDefault();
        self.detaX = e.clientX - self.ele.offsetLeft;
        self.detaY = e.clientY - self.ele.offsetTop;
        self.start();
        
        document.onmouseup = function() {
            self.stop();
        }
    }
}

这个函数中有元素,这个元素自带属性,我们还给这个元素绑定了一个onmousedown的方法或者行为,这个行为又调用了一些功能方法,具体方法为:

// 方法1: 开始
DragBox.prototype.start = function() {
    var self = this;
    document.onmousemove = function(e) {
        var x = e.clientX - self.detaX;
        var y = e.clientY - self.detaY;

        
        self.move(x, y);
            
    }
}

// 方法2: 移动
DragBox.prototype.move = function(x, y) {
    var self = this;
    
    self.ele.style.left = x + "px";
    self.ele.style.top = y + "px";
    
    
}

// 方法3: 停止
DragBox.prototype.stop = function() {
    document.onmousemove = null;
}

以上这个拖拽功能函数只是具有普通的拖拽功能,现在我们在HTML中布局三个盒子,其样式跟结构的代码如下:

<style>
        *{margin:0;padding:0}
        body{
            overflow:hidden;
        }
        div {
            width: 100px;
            height: 100px;
            background: -webkit-radial-gradient(rgba(255,255,0,1) 2%, rgba(0,255,255,1) 98%);
            border-radius:50%;
            position: absolute;
        }

        #box2 {
            background: -webkit-radial-gradient(rgba(0,255,255,1) 2%,rgba(255,0,255,1) 98%);
            top:150px;

        }

        #box3 {
            background: -webkit-radial-gradient(rgba(255,255,255,1) 2%, rgba(255,0,255,1) 98%);
            top:300px;
        }
</style>
<body>
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div>
</body>

相关文章

  • 继承学习心得

    万物皆对象,函数也是对象的一种,函数有原型对象,我们可以通过原型对象来继承其他对象的属性跟方法,比如,我们构造一个...

  • 继承 继承

    属性拷贝 继承不单单能通过原型链实现,也能通过其他方式实现,属性拷贝就是其中一种方法。 通过属性拷贝也能实现继承子...

  • 继承(单继承,多继承)

    将共性的内容放在父类中,子类只需要关注自己特有的内容 python中所有的内容都是对象,所有的对象都直接或间接继承...

  • js继承方式

    类式继承 构造函数继承 组合继承 类式继承 + 构造函数继承 原型式继承 寄生式继承 寄生组合式继承 寄生式继承 ...

  • Python-学习之路-08 OOP -02

    单继承和多继承 单继承:每个类只能继承一个类 多继承:每个类可以继承多个类 单继承的多继承的优缺点 菱形继承/钻石...

  • 原型相关(二)

    1.继承 继承方式:接口继承(只继承方法签名)实现继承(继承实际的方法)ECMAScript只支持实现继承,并且主...

  • 继承

    继承的引入和概述 继承案例和继承的好处 继承的弊端 Java中继承的特点 继承的注意实现和什么时候使用继承 继承中...

  • Java面向对象三大特性之继承

    继承 一、继承的特点 Java只支持单继承单继承 多继承 单继承、多继承优缺点①单继承优点:提高了代码的复用性,让...

  • 7、面向对象的程序设计3(《JS高级》笔记)

    三、继承 许多OO语言都支持两种继承方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际方法。由...

  • 【重学前端】JavaScript中的继承

    JavaScript中继承主要分为六种:类式继承(原型链继承)、构造函数继承、组合继承、原型式继承、寄生式继承、寄...

网友评论

      本文标题:继承学习心得

      本文链接:https://www.haomeiwen.com/subject/gxlayxtx.html