gpt4 book ai didi

javascript - 从 Node 中的内部函数引用外部函数 var

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:29 24 4
gpt4 key购买 nike

我想知道如何访问以下代码中的特定变量:

文件 foo.js

function a(id, callback) {
//Do things
if (err) {
callback(err);
} else {
callback(null, result);
}
}
function b(x, callback) {
//Do things
if (err) {
callback(err);
} else {
callback(null, result);
}
}

文件 Question.js

var id = 1;
var x = 2;
foo.a(id, function(err, result){
if (err) {
//Do stuff
} else {
foo.b(x, function(err, result){
if (err) {
//Do stuff
} else {
console.log("Function A: " + result); // I want to log result from foo.a
console.log("Function B: " + result);
}
});
}
});

如何访问函数 foo.b 内部的函数 foo.a 的 var 结果?

问题是是否有某种方法可以在不更改名称的情况下引用变量。类似于 this.resultsuper.result

最佳答案

The question is if there is some way to reference the variable without chaging the name. Something like this.result or super.result.

不,没有用于从外部作用域(在您的情况下,a 回调中的 result 参数)访问标识符的符号,您通过在错误作用域上重用标识符名称(在您的情况下,b 回调中的 result 参数)来隐藏该标识符。

相反,只需为参数指定不同的名称,因为您的 b 回调会根据 a 回调收到的 结果 关闭:

var id = 1;
var x = 2;
foo.a(id, function(err, aresult){ // <=== `aresult` instead of `result`
if (err) {
//Do stuff
} else {
foo.b(x, function(err, bresult){ // <=== `bresult` instead of `result`
if (err) {
//Do stuff
} else {
console.log("Function A: " + aresult); // <=== Use them
console.log("Function B: " + bresult); // <===
}
});
}
});

关于javascript - 从 Node 中的内部函数引用外部函数 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47769855/

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