gpt4 book ai didi

javascript 操作作用域链内的值

转载 作者:行者123 更新时间:2023-12-03 11:58:12 25 4
gpt4 key购买 nike

我一直在阅读有关 Javascript 闭包和作用域链的内容,但我还没有看到任何有关在作用域链内操作变量的内容。这是我遇到的类似情况:

function first() {
var a = [];
a.push({firstFunction: 'yes'});

doSomethingFunction(valueToPassIn, function() {
a.push({secondFunction: 'yes'});

doAnotherThingFunction(newValueToPassIn, function() {
a.push({thirdFunction: 'yes'});
})
})

console.log(a) //returns {firstFunction: 'yes'}
}

我怎样才能让它返回 {firstFunction: 'yes', secondFunction: 'yes', thirdFunction: 'yes'}

代码可能有语法错误,但这是我试图理解的想法。我只是临时编写了这段代码,这样你们就可以看到与我试图修复的内容类似的场景。

谢谢

最佳答案

我知道评论中已经回答了这个问题,但这里有一个使用回调的示例。

function first(callback) {
var a = [];
a.push({firstFunction: 'yes'});

doSomethingFunction(valueToPassIn, function() {
a.push({secondFunction: 'yes'});

doAnotherThingFunction(newValueToPassIn, function() {
a.push({thirdFunction: 'yes'});
callback(a);
});

});
}

first(function(a){ console.log(a); });

此方法的唯一问题是,当您有超过 3 或 4 个嵌套回调函数时,它会变得不规则。 Promise 是处理它的方法。

jsfiddle:http://jsfiddle.net/axqmvdxg/

关于javascript 操作作用域链内的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25512473/

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