Javascript 如何访问一个函数&x27;他满足于生活吗?
我已经使用IIFE编写了一些javascript代码,在这里我将变量Javascript 如何访问一个函数&x27;他满足于生活吗?,javascript,Javascript,我已经使用IIFE编写了一些javascript代码,在这里我将变量x存储在IIFEhidden中的函数item1中。现在我想创建另一个函数,比如item2,我想在这个新函数中使用变量x。我该怎么做呢 var hidden=(函数(){ var item1=函数(){ x=5; } })(); x可以是您生活中的一个变量,因此当您只公开闭包item1和item2时,它就像一个私有变量 下面是一个简单的例子: var hidden = (function(){ var x;
x
存储在IIFEhidden
中的函数item1
中。现在我想创建另一个函数,比如item2
,我想在这个新函数中使用变量x
。我该怎么做呢
var hidden=(函数(){
var item1=函数(){
x=5;
}
})();
x
可以是您生活中的一个变量,因此当您只公开闭包item1
和item2
时,它就像一个私有变量
下面是一个简单的例子:
var hidden = (function(){
var x;
var item1 = function(){
x=5;
}
var item2 = function(){
return x;
}
return {
item1: item1,
item2: item2
}
})();
hidden.item1()
console.log("value of x", hidden.item2())
你不。。。。。。(可能是因为x是全球性的…)item1是如何调用的?您可以使用
显示模块模式来公开变量x
,这里有多个问题--x
是全局的,因此它可以在任何地方访问,但由于item1
从未在隐藏的内部调用,因此定义x
的代码永远无法执行。因此,考虑到当前的代码,您所问的是不可能的。全局x似乎击败了使用IIFE的目的,没有返回,因此隐藏是未定义的。。。。生活的意义首先是什么?对于建设性的讨论来说,这个例子实在太琐碎了。你能解释一下吗?我的意思是,在item1函数中,5存储在x中,但在item2函数中不可能返回x,对吗?因为只有在函数中声明变量(X
,在本例中)时,X=5才是item1函数的专用项,因此它可以在函数范围内的任何位置访问。由于item1
和item2
也在iife的范围内,因此他们可以访问x
。如果x
是在item1
中声明的,那么item2
就不可能访问它。