';这';javascript的关键字不同于';这';java的关键字?
javascript的“this”关键字与java的“this”关键字有何不同?任何实用的例子都将不胜感激';这';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中:
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
。