2017-07-29 54 views
0

我知道“this”如何在浏览器上下文中工作,以及它在不同情况下的值如何变化,例如使用箭头函数如何调用函数。在node.js和浏览器中的函数上下文(this)之间的区别

我打印出“此”,在为节点的js不同的场景(快递JS,更具体),并且它含有更大量的数据 - 包括路径名等

我的问题是:
1 。关于'this'的规则与node.js完全一样吗?
2.有没有人可以解释node.js'这个'对象的属性或者指向一个简单的文章。

谢谢!

+1

是的。 NodeJS只是JavaScript的一个运行时,所有JavaScript的规则应用完全一样...... – Li357

+0

*“任何人都可以解释node.js'这个'对象属性或指向我一个简单的文章。'*我讨厌说它,但这意味着“有人可以为我写谷歌并写出摘要?” – Tomalak

回答

2

浏览器中的this与node.js没有不同的规则。规则由ECMAScript标准设置,浏览器的Javascript实现和node.js中的实现遵循相同的ECMAScript标准。

您可能正在查看的是某个特定上下文中this的“默认”值。在浏览器中,您可能正在查看this的默认值,该值可能是window对象。在node.js中,如果您看到文件名,您可能会将模块句柄视为thisglobal对象的默认值。

为了更具体地帮助您,我们需要在每个环境中查看您正在检查this的值的位置处的代码,并且还要知道您是否在严格模式下运行。

在大多数情况下,this仅用于默认值,而不用于this值设置为的特定对象。例如,如果要调用类似:

obj.method(); 

然后,method里面执行,JavaScript解释器将在this值设置为obj。这是Javascript的面向对象特性的一部分。

1

This this object is global object is in the context。在节点是process对象。

相关问题