我们可以在为函数中的参数赋值时使用括号而不是等号吗?

时间:2021-06-09 21:30:38

标签: javascript function parameters

所以,我只是在看一个来自 WebDevSimplified 的教程,下面是困扰我的那段代码。

const failure1 = false;
const failure2 = false;

function callbackFunction(callback, errorCallback) {
    if (failure1) {
        errorCallback({
            name: 'Negative event1 occurred',
            message: ':('
        })
    } else if (failure2) {
        errorCallback({
            name: 'Negative event2 occurred',
            message: ':/'
        })
    } else {
        callback('Mission complete!')
    }
}

callbackFunction((message) => {
    console.log('Success: ' + message)
}, (error) => {
    console.log(error.name + ' ' + error.message)
})

那么,为什么要像这样为函数参数分配一个值:

callback('Mission complete!')

因为根据我在互联网上找到的所有信息,我会这样做:

callback = 'Mission complete'

然而,当我这样做时,它不起作用。我现在真的感觉超级糟糕,因为这看起来很琐碎,我找不到任何相关信息。如果有人向我解释,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

没有。语法有完全不同的含义。


这会为 callback 赋值:

callback = 'Mission complete'

这会调用函数 callback 并传递一个参数给它:

callback('Mission complete!')

该值将分配给函数定义的第一个参数中指定的变量:

function callback(this_is_the_variable) {
     if (this_is_the_variable === 'Mission complete!') {
         // something
     }
}

(在您的示例中,this_is_the_variable 名为 message

相关问题