回答
没有,这样做的能力没有任何意义。假设我们稍微改变你的函数,并把它称为3倍:
function x(n){
var x = n+34;
}
x(1), x(2), x(3);
在这一点上,该功能已运行3次,所以变量x
已创建3倍 - x
你会希望能够访问哪些?然后有垃圾收集;如果浏览器在变量不在范围内时必须保持变量存活,那么如何从内存中清除引用和数据?
如果你想,你可以做这样的事情:
function x() {
x.x = 12+34;
}
x();
,或者,如果变量是静态/恒定,你拥有了它
function x() { }
x.x = 12+34;
或最后,其他人指出,通过在功能范围外声明x
以不同的名称:
var y;
function x() {
y = 12+34;
}
x();
是的,但不在上面的示例范围。你必须使用闭包。考虑以下几点:
var x,
A = function() {
x = 12 + 34;
};
通过这种方式,你可以从功能A.什么是更好的内部访问x是X具有A的私有成员的直接访问,因此可用于泄漏到外面的私人数据A.
答案没有解决问题。这个答案描述了一个与Shusl所问的根本不同的情况。 – outis
是不是真的,你怎么可能知道Shusl打算什么?也许舒斯尔并不知道关闭是一种惯例/选择,所以没有想到用这种方式提出问题。 – austincheney
这就是为什么这个答案没有解决这个问题:你不能知道舒斯尔想要什么,只有舒斯尔问什么。如果您怀疑这个问题没有解决Shusl真正想知道的内容,那么您应该要求澄清(尽管您需要为此获得更多的重要信息)。或者,回答所问的问题,然后包括一个预测提问者需求的部分,就像Andy E所做的那样。就目前来看,“是”是舒斯尔问题的错误答案。 – outis
你不能直接通过它的名字来访问它,尝试从变量声明中删除'var',因为这应该使变量为全局变量,或者将它们放在ready函数之外。并从函数返回x的值。
你可以做一些这样的事:
$(document).ready(function() {
var x;
function x(){
x = 12+34;
return x;
}
alert(x());
});
希望这有助于。
- 1. 函数的所有实例是否可以访问相同的私有变量?
- 2. JavaScript:是否可以访问私有变量(即哪些隐藏在闭包中)?
- 3. JavaScript的私有函数访问公共变量
- 4. 是否可以访问Matlab中函数句柄中的变量?
- 5. 修改函数以访问类之外的私有变量
- 6. 是否可以通过JSFL访问as3函数和变量?
- 7. 是否可以动态访问模块模式中的私有变量?
- 8. 是否有可能从JQuery函数中访问常规的JavaScript变量?
- 9. 是否有任何方法可以访问java中的函数局部变量
- 10. 通过javascript中的私有方法访问私有变量
- 11. GHUnit访问私有变量
- 12. PHP私有变量访问
- 13. WP7 - 访问私有变量
- 14. 访问私有变量
- 15. 类中的私有变量可以从Java中的main访问?
- 16. javascript私人变量访问问题
- 17. 在JavaScript函数中使变量私有
- 18. Javascript:从私人函数访问公共变量
- 19. 的JavaScript可以访问一个变量
- 20. 从HTML调用js函数时可以访问javascript变量吗?
- 21. C++访问函数参数私有变量
- 22. Java EE 6中的@Remote是否可以访问私有方法?
- 23. 访问私有函数?
- 24. 混淆为什么可以访问私有变量?
- 25. C#扩展方法可以访问私有变量吗?
- 26. 从javascript中的函数访问变量?
- 27. 访问函数内部的JavaScript变量
- 28. 是否可以绑定到私有变量暴露的属性?
- 29. 我可以在此JavaScript函数的替代版本中访问私有变量吗
- 30. 提供函数指针访问C++类的私有成员 - 是否有可能?
您的最终目标是什么?也许你想看对象 –
编号'x'是本地的。 http://stackoverflow.com/questions/500431/javascript-variable-scope – adarshr
在你拥有它的方式,不,这就是为什么它是“私人”。顺便说一句,命名数字和函数'x'并不是一个很好的选择。 – pimvdb