很抱歉,如果这是一个愚蠢的问题,请注意空白
function getPassedUsers(){
var rr = ['a'];
return _ARRAY_OF_PAST_USERS
}
function removeFromFutureUsersArray(users){
getPassedUsers();
console.log(rr);
};
为什么返回undefined,如何获取第二个函数来记录在我的其他函数中创建的数组的内容?
答案 0 :(得分:0)
根据我的理解,下面的代码应该做你想要的:
function getPassedUsers(){
var rr = ['a'];
return rr;
}
function removeFromFutureUsersArray(users){
var rr = getPassedUsers();
console.log(rr);
};
答案 1 :(得分:0)
嗯rr属于函数getPassedUsers,因此removeFuteureUserArray无法看到它。我假设你想要这样的东西 - >
function getPassedUsers(){
return ['a'];
}
function removeFromFutureUsersArray(users){
var rr = getPassedUsers();
console.log(rr);
};
答案 2 :(得分:0)
你应该读一下SCOPE:
var a=0;
{
var b=1;
alert(a);//0
alert(b);//1
}
alert(a);//0
alert(b);//undefined
变量只能在其范围内访问。所以{和}之间 因此,在您的情况下,您必须将其传递给其他函数,或者将其设为gobal:
var rr;
function func1(){
rr=["test"];
}
function func2(){
console.log(rr);
}
答案 3 :(得分:0)
在JS中,如果只需要一个访问所需函数集的单点,那么一个简单的闭包就可以完成这项工作。这可以简单地实现如下;
function passedUsers(){
var rr = [];
return { getPassedUsers : function(){return rr;},
insertPassedUser: function(u){rr.push(u)},
removePassedUser: function(u){rr.splice(rr.indexOf(u),1);}
};
}
var pu = passedUsers();
pu.insertPassedUser("john");
pu.insertPassedUser("jane");
console.log(pu.getPassedUsers());
pu.removePassedUser("john");
console.log(pu.getPassedUsers());
但是,如果您需要从不确定数量的对象访问这些函数,同时保持闭包完整(rr
可供所有人使用),那么涉及更复杂解决方案的原型会更好。