美文网首页
通过-拖拽-来了解js中的this指向

通过-拖拽-来了解js中的this指向

作者: 风之伤_3eed | 来源:发表于2017-10-12 09:04 被阅读0次

虽然大概了解js中this的指向问题,但只有实践才有深刻的认识,通过对“拖拽”进行逐步对this进行分析,才深刻理解this在不同的位置的指向。
该代码使用的是面向对象的思想。

首先建立一个构造函数,在他的内部添加属性。

function Box(a){}

在构造函数中获取该物体。this.ele即为获取到的物体
为了在后续方便将对象Box("pic")保存在self中
这里的this.ele为获取到的物体
这里的this为a对象Box("pic");

 this.ele = document.getElementById(a);
        var self = this;
        // console.log(this.ele)
        //console.log(this)

给该物体添加鼠标按下事件属性
阻止浏览器默认行为
这里的this指的是this.ele
将鼠标点击的当前位置设置为物体左上角
调用对象Box的move属性,由于在此函数中this指向this.ele所以在前面保存this的self便派上用场

this.ele.onmousedown=function(e){
            e.preventDefault()
            //console.log(this)
             self.detaX = e.clientX - this.offsetLeft;
            // console.log(detaX)
             self.detaY = e.clientY - this.offsetTop;
            self.move()  
            }

给该物体绑定随鼠标运动
this为a对象Box("pic")
this为document

this.move=function(){
            //console.log(this);
                document.onmousemove=function(e2){
                    //console.log(this);
                    //console.log(self.ele)
                self.ele.style.left=(e2.clientX - self.detaX) + "PX";
                self.ele.style.top=(e2.clientY - self.detaY) + "PX";
                //console.log(e2.clientY - self.detaY)    
                }  
                document.onmouseup=function(){
                    document.onmousemove=null;
                }
        }

最后要记得调用构造函数才可以。

var a=new Box("pic");

相关文章

  • 通过-拖拽-来了解js中的this指向

    虽然大概了解js中this的指向问题,但只有实践才有深刻的认识,通过对“拖拽”进行逐步对this进行分析,才深刻理...

  • 通过-拖拽-认识对象继承与对象冒充

    在昨天通过“拖拽”了解了this在不同情况下的指向,今天在此基础上我们来对对象的继承与对象的冒充来进行了解。在昨天...

  • JS进阶篇-this指向问题

    JS中this的指向问题不同于其他语言,JS中的this不是指向定义它的位置,而是在哪里调用它就指向哪里。 JS中...

  • 2019-01-23

    js的基本语法,流控制语句,通过js来控制网页中的元素,如何与浏览器窗口进行交互 js基础 了解什么是js js是...

  • Drag Drop---API

    在h4标准中,我们定义个拖拽事件是很麻烦的,用原生的js来实现拖拽的效果。我们需要计算拖拽的元素的坐标位置和距离之...

  • JS中this指向

    一、全局作用域中的thises5与es6中严格模式与非严格模式全局函数的this都指向window 二、全局作用域...

  • JS中this指向

    函数有4种调用方式,对应就有4种绑定规则:默认绑定、隐式绑定、硬绑定和构造函数绑定。 1、默认绑定 当作为普通函数...

  • js中this指向

    1.this总是指向函数的直接调用者2.如果有new关键字,this指向new出来的那个对象3.DOM事件中thi...

  • JS中this指向

    (1)事件调用环境:谁触发事件,函数里面的this指向就是谁(某个DOM)。 (2)node全局环境:this指向...

  • js中this指向

    当我们需要把函数当做另外函数参数传入时,我们使用箭头函数。 关于this的指向。 问题:箭头函数中的this是如何...

网友评论

      本文标题:通过-拖拽-来了解js中的this指向

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