未定义 Javascript 变量

保罗·汉尼福思

为什么undefined我移动鼠标时总是提示它应该返回真,对吧?我希望有人能帮助我 :) 在你问之前,我在另一个 JavaScript 文件中调用了这个类!

class Block {

 constructor() {

    this.movable = true;
    this.move = false;

    this.div = document.createElement("div");
    this.div.classList.add("block");

    this.div.addEventListener("mousemove", function() {

        console.log(this.movable); 

    });
    this.div.addEventListener("mousedown", function() {

        this.move = true;
        console.log("test");

    });
    this.div.addEventListener("mouseup", function() {

        this.move = false;
        console.log("test1");

    });

 }
 add() {

     document.body.appendChild(this.div);

 }
 remove() {

     document.body.removeChild(this.div);

 }

}
全栈人

您可以使用ES6箭头函数()=>{}来解决您的问题。箭头函数使用this当前执行上下文。在这种情况下,它是class具有初始化movable属性的实例

普通匿名函数将使用this侦听器附加到的对象的 ,在您的情况下是div. 由于div没有movable财产你得到undefined

class Test{

 constructor() {
      this.movable = true;
      this.move = false;

      this.div = document.createElement("div");
    
      this.div.classList.add("block");

      this.div.addEventListener("mousemove", ()=> {
          console.log(this.movable); 
      });
      this.div.addEventListener("mousedown", ()=> {
          this.move = true;
          console.log("test");
      });
      this.div.addEventListener("mouseup", ()=> {
          this.move = false;
          console.log("test1");
      });
    }

 add(){
     this.div.textContent ="Hover over me.";
     document.body.appendChild(this.div);
 }

 remove(){
     document.body.removeChild(this.div);
 }

}
var test = new Test();
test.add();
<body>
</body>

引自 MDN:

箭头函数表达式的语法比函数表达式短,并且没有自己的 this、arguments、super 或 new.target。这些函数表达式最适合非方法函数,它们不能用作构造函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript未定义变量是自动定义的吗?

来自分类Dev

JavaScript变量未定义与未定义

来自分类Dev

JavaScript Typerror变量未定义。

来自分类Dev

javascript变量是未定义的。为什么?

来自分类Dev

JavaScript全局变量在函数内部变为未定义

来自分类Dev

变量未定义-JavaScript

来自分类Dev

GTM自定义Javascript未定义变量

来自分类Dev

Javascript jQuery函数未定义变量

来自分类Dev

Javascript对象的变量未定义

来自分类Dev

Javascript未定义变量为空

来自分类Dev

加载时未定义JavaScript变量;

来自分类Dev

JavaScript变量未定义错误

来自分类Dev

JavaScript说对象内部的已定义变量未定义

来自分类Dev

javascript变量是未定义的甚至定义?

来自分类Dev

Javascript中的“ ReferenceError:变量未定义”

来自分类Dev

JavaScript变量未定义与未定义

来自分类Dev

Javascript变量未定义但已定义

来自分类Dev

javascript:未定义变量与未定义函数

来自分类Dev

看似定义的javascript变量抛出未定义的错误

来自分类Dev

Javascript变量范围返回未定义

来自分类Dev

如何检查未定义的JavaScript变量?

来自分类Dev

Javascript数组赋值变量未定义

来自分类Dev

JavaScript TypeError:变量未定义

来自分类Dev

Javascript数组循环变量未定义

来自分类Dev

未定义的 Javascript 变量 - phcat

来自分类Dev

Javascript:变量不是未定义的,但在返回时,被返回未定义

来自分类Dev

函数中的变量未定义/Javascript

来自分类Dev

刷新后 JavaScript 未定义变量

来自分类Dev

尽管已定义,但javascript变量未定义