首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在其环境外部调用局部变量

在其环境外部调用局部变量
EN

Stack Overflow用户
提问于 2020-04-03 19:03:10
回答 2查看 31关注 0票数 0

我试图以这种方式在其函数之外获取snapAuthor变量的值,但是控制台告诉我没有找到它!

代码语言:javascript
复制
<b:tag name='script' type='text/javascript'>

function OuterFn(){
var snapAuthor = AuthorsInfo.filter(function(a){

return a.name===&#39;<data:title/>&#39;

})[0];


if(snapAuthor!==undefined){
snapAuthor.provided=true;

<b:loop values='data:links' var='link'>
<b:if cond='data:link.name contains &quot;-ad&quot;'>
snapAuthor[&#39;<data:link.name/>&#39;]=&#39;<data:link.target.jsEscaped/>&#39;;
<b:else/>
<b:switch var='data:link.name'>
<b:case value='rank'/>snapAuthor.rank=&#39;<data:link.target.escaped/>&#39;;
<b:case value='about'/>snapAuthor.about=&#39;<data:link.target.escaped/>&#39;;
<b:default/>snapAuthor.links[&#39;<data:link.name/>&#39;]=&#39;<data:link.target/>&#39;;
</b:switch>
</b:if>
</b:loop>
}

var getSlices = function(){
return snapAuthor;
}
var slice = function(){
snapAuthor++;
}
};

var outerFn = new OuterFn();
console.log(outerFn.getSlices);// undefined
console.log(outerFn.slice);// undefined

</b:tag>
EN

回答 2

Stack Overflow用户

发布于 2020-04-03 19:17:38

在JavaScript中,变量的作用域是函数。因此,如果此变量是在函数中定义的,则无法在此函数之外访问它。您应该在其他地方定义该变量。

票数 0
EN

Stack Overflow用户

发布于 2020-04-03 19:23:44

您应该将函数OuterFn函数外部的变量定义为:

代码语言:javascript
复制
var snapAuthor;

然后在函数中只需在其中填充数据

代码语言:javascript
复制
function OuterFn(){
snapAuthor = AuthorsInfo.filter(function(a){

这应该能起到作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61010417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档