如何在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!"