Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
';这';javascript的关键字不同于';这';java的关键字?_Java_Javascript - Fatal编程技术网

';这';javascript的关键字不同于';这';java的关键字?

';这';javascript的关键字不同于';这';java的关键字?,java,javascript,Java,Javascript,javascript的“this”关键字与java的“this”关键字有何不同?任何实用的例子都将不胜感激 var counter = { val: 0, increment: function () { this.val += 1; } }; counter.increment(); console.log(counter.val); // 1 counter['increment'](); console.log(counter.val); // 2 在java中:

javascript的“this”关键字与java的“this”关键字有何不同?任何实用的例子都将不胜感激

var counter = {
  val: 0,
  increment: function () {
    this.val += 1;
  }
};
counter.increment();
console.log(counter.val); // 1
counter['increment']();
console.log(counter.val); // 2
在java中:

 public Rectangle(int x, int y, int width, int height) {
        this.x = x;
        this.y = y;
        this.width = width;
        this.height = height;
    }

谢谢。

ECMAScript将
定义为“计算为当前执行上下文的ThisBinding值”的关键字(§11.1.1)。每当建立执行上下文时,解释器都会更新ThisBinding

在Java
中,此
指使用它的方法的当前实例。有一个JVM,没有解释器。

在JavaScript
中,这个
总是指我们正在执行的函数的“所有者”,或者更确切地说,指函数作为方法的对象


在Java中,
this
指的是在其上执行该方法的当前实例对象。

当涉及到关键字“this”时,JavaScript有点奇怪

在JavaScript中,函数是对象,并且是


事实上,只要阅读链接文章就可以了解JavaScript如何处理“this”关键字——先喝大量咖啡。

这两种情况下的关键字都指当前对象。在JavaScript中,
这也可以指触发事件的元素。Java不是JavaScript,所以我认为您正在进行的比较是,在苹果和桔子之间,这是没有意义的。可能是重复的。(我知道这是一个“封闭”的问题,但第一个答案也清楚简洁地回答了这个问题。)在ECMAScript中,这是通过调用或使用bind设置的。它可以引用任何对象,并且每次调用都不同。此外,在严格模式下,可以通过调用将其设置为任何值,包括
undefined