gpt4 book ai didi

Javascript - 嵌套函数不调用 stub 函数

转载 作者:行者123 更新时间:2023-11-30 11:44:38 25 4
gpt4 key购买 nike

我正在尝试调用已 stub 的嵌套函数。我正在使用 sinon 进行 stub 。

function logger(){

function log(msg){

sendMsg(msg)
}

var sendMsg = function (msg){
console.log("original func")
}

return {
log:log,
sendMsg:sendMsg
}
}

我正在 stub “sendMsg”函数并尝试从 log 函数中调用它,但调用的不是 stub 函数,而是原始函数。

最奇怪的是,当我用 this.sendMsg 调用 sendMsg 时,它会调用 stub 。

我确定有一个我不知道的 JS 原则,我很高兴你能指出一个..

谢谢

最佳答案

log()函数直接引用符号sendMsg来调用函数。 log() 唯一可见的sendMsg 是分配了“真实”函数的局部变量。更改返回对象的“sendMsg”属性的值不会影响它; log()始终 调用“真正的”sendMsg() 函数。

如果 log() 被编写为调用 this.sendMsg,那么您的 stub 函数将被调用。

关于Javascript - 嵌套函数不调用 stub 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com