我知道“this”在浏览器上下文中如何工作,以及它的值在不同场景中如何变化,例如使用箭头函数时如何调用该函数。
我在 Node js(更具体地说是express js)的不同场景中打印了“this”,它包含更多数据 - 包括路径名等
我的问题是:
1.关于“this”的规则与node.js完全相同吗?
2. 谁能解释一下node.js的“this”对象属性或者给我指点一篇简单的文章。
谢谢!
最佳答案
浏览器中的 this
与 Node.js 中没有不同的规则。这些规则是由 ECMAScript 标准设置的,浏览器的 Javascript 实现和 Node.js 中的 Javascript 实现都遵循相同的 ECMAScript 标准。
您可能看到的是在某些特定上下文中 this
的“默认”值。在浏览器中,您可能正在查看 this
的默认值,它可能是 window
对象。在 Node.js 中,如果您看到文件名,则可能会将模块句柄视为 this
或 global
对象的默认值。
为了更具体地帮助您,我们需要查看您在每个环境中检查 this
值的位置的代码,并了解您是否在严格模式下运行。
在大多数情况下,this
不仅仅与默认值一起使用,而是与 this
值设置为的特定对象一起使用。例如,如果您调用类似以下内容:
obj.method();
然后,在method
的实现中,Javascript解释器会将this
的值设置为obj
。这是 Javascript 面向对象本质的一部分。
关于javascript - Node.js 和浏览器中函数上下文(this)的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45386195/