2016-09-26 93 views
0

很抱歉,如果这是一个愚蠢的问题,有一个心灵空白调用另一个函数中的一个阵列中的JavaScript

function getPassedUsers(){ 
    var rr = ['a']; 

    return _ARRAY_OF_PAST_USERS 
} 

function removeFromFutureUsersArray(users){ 
    getPassedUsers(); 
    console.log(rr); 
}; 

为什么是回报不确定,我怎样才能登录该数组的内容的第二功能在我的其他功能创建?

+0

你期望什么?什么是_ARRAY_OF_PAST_USERS? 'rr'不在范围内 – Li357

回答

0

从我的理解,下面的代码应该做你想要什么:

function getPassedUsers(){ 
    var rr = ['a']; 
    return rr; 
} 

function removeFromFutureUsersArray(users){ 
    var rr = getPassedUsers(); 
    console.log(rr); 
}; 
0

好RR属于功能getPassedUsers,所以removeFuteureUserArray无法看到它。我假设你想是这样的 - >

function getPassedUsers(){ 
    return ['a']; 
} 

function removeFromFutureUsersArray(users){ 
    var rr = getPassedUsers(); 
    console.log(rr); 
}; 
0

你应该阅读有关适用范围:

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); 
} 
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是提供给所有),则涉及更复杂的解决方案的原型会更好。

相关问题