如何在javascript中访问函数内部的变量

如何在javascript中访问函数内部的变量,javascript,Javascript,我有密码: var here; function setNews(data2){ here = data2; console.log(here);//1st console log } console.log(here);//2nd console log 在第一个控制台日志中,这里的数据被打印,但在第二个控制台日志中,它打印了未定义的数据。我如何访问setNews函数中的数据,以便在setNews之外使用它 谢谢。您可能需要查看您的体系结构 var here; functio

我有密码:

var here;
function setNews(data2){
    here = data2;
    console.log(here);//1st console log
}
console.log(here);//2nd console log
在第一个控制台日志中,这里的数据被打印,但在第二个控制台日志中,它打印了未定义的数据。我如何访问setNews函数中的数据,以便在setNews之外使用它


谢谢。

您可能需要查看您的体系结构

var here;
function setNews(data2){
    here = data2;
    console.log(here);//1st console log
}
//executed immediatly, `here` is not yet initialized by setNews
console.log(here);//2nd console log
加载javascript时,变量“here”将立即输出到控制台,但由于它未定义,控制台显示“undefined”


稍后调用setNews('sample')时,它将在此处设置全局变量
,但这没有意义,因为它已被输出。

//将其初始化为所需值

var here = "your value";

Fiddle

我想…使用return

var here = setNews(2);

function setNews(data2){
    here = data2;
    console.log(here);//1st console log

    return here;
}
console.log(here);//2nd console log

请在网上阅读这篇文章

发生的情况是,当您第一次在此处声明变量
,它没有初始化。 当您在函数
setNews()
中给
此处的
一个值时,它的值对外部
控制台不可用。log
。 因此,您需要先调用
setNews()
,然后才能在第二次调用控制台时显示
的内容,如下所示:

var here;
function setNews(data2){
    here = data2;
    console.log(here);//1st console log
}
setNews("some data here");
console.log(here);//2nd console log, it will display "some data here"

如果要定义一个变量(我们称之为“此处”),该变量自动设置为某个名为“setNews”的函数的值,那么这可能会更好:

var here,
    data2 = "the news!";

// Set value of "here" to processed data2
here = (function (news) {
    // Process news
    news = "This is " + news;
    return news;
})(data2);

console.log(here);
// Prints "This is the news!"

实际上,它应该可以工作,你能通过整个代码吗?我能重现这种行为<代码>这里的var;函数setNews(data2){here=data2;console.log(here);//第一控制台日志}setNews(“ff”);console.log(此处)//第二控制台日志
您是否将所有这些代码都放在document.ready函数中?我认为当您将所有内容放在文档之外时,您的代码应该可以工作。就绪。试试看。你在哪里调用函数setNews的?
var here,
    data2 = "the news!";

// Set value of "here" to processed data2
here = (function (news) {
    // Process news
    news = "This is " + news;
    return news;
})(data2);

console.log(here);
// Prints "This is the news!"