gpt4 book ai didi

javascript - 该函数能否成功使其数据在其他上下文中可用?

转载 作者:行者123 更新时间:2023-12-03 10:21:53 26 4
gpt4 key购买 nike

在此代码摘录中,我试图确定 setExtension 函数中的 data 变量是否在 Object.keys 上下文中可用。由于 setExtension 函数的目的是在 extension 可用时更改 data.layout

function setExtension(file) {
var data = files[file];
if (extension) data.layout = data.layout + '.' + extension;
}

Object.keys(files).forEach(function(file){
if (!check(file)) return;
setExtension(file);
debug('stringifying file: %s', file);
var data = files[file];
data.contents = data.contents.toString();
});

我想说 setExtension 不执行任何操作,因为它在其范围内创建 data 并且不返回 data。但我很难弄清楚我是否真的正确,或者忽略了一些微不足道的事情。

最佳答案

data 变量在其本地函数作用域之外不可用,因为它是用 var 声明的。关键字和 Javascript 具有函数级别作用域。

如果删除 var 关键字,那么它将可用,因为它将在全局对象上声明。 但是,这是一个bad idea ,所以不要这样做

您可以做的是从 setExtension 函数返回数据变量。

function setExtension(file) {
var data = files[file];
if (extension) data.layout = data.layout + '.' + extension;
return data;
}

然后你可以通过更改 forEach 来获取数据变量:

Object.keys(files).forEach(function(file){
if (!check(file)) return;
var data = setExtension(file);
debug('stringifying file: %s', file);
data.contents = data.contents.toString();
});

关于javascript - 该函数能否成功使其数据在其他上下文中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591701/

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