我找到了这个示例,我无法理解它的工作方式:
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。