如何创建一个全局函数内部的变量?
以下是我的javascript函数,我想使用变量选择外部函数,但是我在检查元素的控制台中选择了未定义的错误。 window.yourGlobalVariable没有解决我的问题。
function showMe(pause_btn) {
var selected = [];
for (var i = 0; i < chboxs.length; i++) {
if (chboxs[i].checked) {
selected.push(chboxs[i].value);
}
}
}
如果你真的希望它是全球性的,你有两种选择:
在全局声明它,然后将var
关闭在函数中:
var selected;
function showMe(pause_btn) {
selected = [];
for (var i = 0; i < chboxs.length; i++) {
if (chboxs[i].checked) {
selected.push(chboxs[i].value);
}
}
}
分配给window
属性
function showMe(pause_btn) {
window.selected = [];
for (var i = 0; i < chboxs.length; i++) {
if (chboxs[i].checked) {
selected.push(chboxs[i].value); // Don't need `window.` here, could use it for clarity though
}
}
}
window
的属性是全局变量(你可以在它们前面使用或不使用window.
访问它们)。
但是 ,我会避免让它成为全球。 要么showMe
返回信息:
function showMe(pause_btn) {
var selected = [];
for (var i = 0; i < chboxs.length; i++) {
if (chboxs[i].checked) {
selected.push(chboxs[i].value);
}
}
return selected;
}
...然后你需要它的地方:
var selected = showMe();
...或者在包含showMe
的范围中声明它,但不是全局的。 没有上下文,这看起来完全像上面的#1; 这里有一点上下文:
(function() {
var selected;
function showMe(pause_btn) {
selected = [];
for (var i = 0; i < chboxs.length; i++) {
if (chboxs[i].checked) {
selected.push(chboxs[i].value);
}
}
return selected;
}
// ...other stuff that needs `selected` goes here...
})();
外部匿名函数是一个“范围函数”,这意味着selected
内容不是全局的,它只是该函数中任何内容的共同点。
做这个:
var selected;
function showMe(pause_btn) {
selected = [];
for (var i = 0; i < chboxs.length; i++) {
if (chboxs[i].checked) {
selected.push(chboxs[i].value);
}
}
}
你实际上可以跳过var selected;
的var selected;
行,但我更喜欢声明我的变量。
不要使用这个;
selected = [];
这是一个JavaScript的错误
window.selected = [];
在你的功能里面。
链接地址: http://www.djcxy.com/p/95027.html上一篇: How to make a variable which is inside a function global?