javascript的'this'关键字与java的'this'关键字有什么不同?

时间:2013-12-23 04:56:02

标签: 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中:

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

感谢。

3 个答案:

答案 0 :(得分:6)

关于关键字“this”,JavaScript有点奇怪。

在JavaScript中,函数是对象,the value of "this" depends on how a function is called

事实上,只需阅读链接文章,了解JavaScript如何处理“this”关键字 - 首先喝大量咖啡。

答案 1 :(得分:4)

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

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

答案 2 :(得分:1)

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

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