node.js - 为什么在函数内部调用时 this 指向应用程序进程?

标签 node.js

在我的 Node 应用程序中编写以下代码:

Date.prototype.getDayName = function() {
    let daysOfWeek = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
    return daysOfWeek[this.getDay()]
}

(async () => {
    ...
    ...
    ...
})()

我知道 this.getDay() 不是一个函数。当我在这个上下文中记录它时,我得到了进程对象:

    Object [global] {
global: [Circular],
process:
process {
    title: 'node',
    version: 'v10.12.0',
    versions:
    { http_parser: '2.8.1',
        node: '10.12.0',
        v8: '6.8.275.32-node.35',
        uv: '1.23.2',
        zlib: '1.2.11',
        ares: '1.14.0',
        .....
        .....
        .....

最佳答案

在编写自调用异步函数之前,您始终需要添加分号。代码将像这样工作:

Date.prototype.getDayName = function() {
    let daysOfWeek = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
    return daysOfWeek[this.getDay()]
}; //You need to put a semi-colon before writing a self calling async function

(async () => {
    ...
    ...
    ...
})()

关于node.js - 为什么在函数内部调用时 this 指向应用程序进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53150679/

相关文章:

javascript - 为什么我的回调以字符串形式发送?

node.js - 如何使用 ASP.Net、IISNode、Node.JS 和 SQL Server 实现基于事件的推送通知的 Socket.IO?

node.js - Amazon EC2 上 Node.js 的 CPU 利用率

node.js - 无法通过 NextJS 访问 HTTP 帖子中的正文

javascript - 如何捕获 jsdom.jqueryify 回调引发的错误?

javascript - express-jwt 身份验证中间件不工作

javascript - Node.js:文件读取并将字符串作为数组放入数组

javascript - 使用 JavaScript 进行网页抓取?

javascript - setInterval 处理程序是否被视为内存泄漏?

node.js - 如何使用node js从azure存储中删除文件夹