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;
}
感谢。
答案 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,没有解释器。