gpt4 book ai didi

javascript - 更改函数范围

转载 作者:行者123 更新时间:2023-11-28 05:41:08 25 4
gpt4 key购买 nike

我正在尝试测试这个模块:

function fa(){
return "function A"
}
function fb(){
return "function B + " + fa()
}
module.exports = {fa, fb}

我是这样测试的:

var myModule = require("./myModule")
var sinon = require("sinon")
var util = require('util');

sinon.stub(myModule,"fa").returns("stub")
console.log(myModule.fb()) //expect to display "function B + stub"

它实际上显示的是“功能B + 功能A”

如果我用 return "function B + "+ this.fa() 替换 fb 的方法主体(注意添加 this.),那么它的工作原理如下预计。

是否有办法模拟未使用 this 调用的函数?

最佳答案

没有方便的方法可以做到这一点。您可以创建一个对象并将其用作引用,因此您将该函数称为“方法”

发生的情况是,您将该函数称为“函数”,该函数本身与您导出的函数不同。

阅读本文可以更清楚地了解我所说的内容。 Understanding 'this' keyword

关于javascript - 更改函数范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38909403/

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