JavaScript的"this"关键字与Java的"this"关键字有何不同?


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

在爪哇中:

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

谢谢。

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

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

涉及到关键字"this"时,JavaScript有点奇特。

在 JavaScript 中,函数是对象,"this"的值取决于函数的调用方式。

事实上,只需阅读链接的文章即可了解 JavaScript 如何处理"this"关键字——先喝大量的咖啡。

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

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

相关内容