繁体   English   中英

javascript中的示例堆栈,需要澄清“ this”的用法

[英]Example stack in javascript, need clarification on 'this' usage

我找到了这个示例,但我无法理解它是如何工作的:

 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?

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

您可以查看此文档以了解更多详细信息

this在JavaScript中是游戏规则的改变者,应予以注意。 用的东西this是它引用您调用函数的上下文。

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

Btw console.log会在解决时进行打印,但是您无法期望在那时及时解决ti。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM