为什么在将 console.log 添加到我的代码时会出现 TypeError

问题描述 投票:0回答:1

问题描述

我有以下代码可以正常工作:

const user = {
    hello() {
        console.log("Hi:", this)
    }
}

const commonJs = (user) => function() {
    (0, user["hello"])()
}

commonJs(user)()

但是,当我添加

console.log("Running")
时,我收到错误
Uncaught TypeError: console.log(...) is not a function

const user = {
    hello() {
        console.log("Hi:", this)
    }
}

const commonJs = (user) => function() {
    console.log("Running")
    (0, user["hello"])()
}

commonJs(user)()

我不明白为什么会发生这种情况,因为我认为添加一个简单的

console.log
不会导致任何问题。谁能解释一下这里出了什么问题吗?

我尝试过的事情

我注意到,当我在

;
之后添加分号 (
console.log("Running")
) 时,错误消失了:

const user = {
    hello() {
        console.log("Hi:", this)
    }
}

const commonJs = (user) => function() {
    console.log("Running");
    (0, user["hello"])()
}

commonJs(user)()

但是我不明白为什么没有分号就会出现错误。

javascript
1个回答
1
投票

如果没有分号,代码将被解释为:

console.log("Running")(0, user["hello"])()

由于 .log() 不返回任何内容,因此会发生类型错误,因为看起来您正在尝试调用 .log() 返回的函数。

© www.soinside.com 2019 - 2024. All rights reserved.