JavaScript 中的示例堆栈,需要澄清'this'用法



我找到了这个示例,我无法理解它的工作方式:

function Stack() {
  this.top = null;
}
    
Stack.prototype.push = function(val) {
  this.top = {
    data : val,
    next : this.top
  }
}
    
var S1 = new Stack();
S1.push(1);
S1.push(2);
console.log(S1);

为什么'Next:this.top'分散到先前的推动" this.top"对象中?而不仅仅是返回null?

当函数称为对象的方法时,将其设置为对象,该方法调用。

您可以看到此文档以获取更多详细信息

javaScript中的 this是一个改变游戏规则的人,应该照顾它。this的事情是它引用了您调用函数的上下文。

在这种情况下,当调用.push时,这将引用堆栈对象实例。

btw console.log在解决时会打印,但是您不能指望在此时间点解决ti。

最新更新