2010-08-14 52 views
0

我有一个从1-10返回一个随机数的函数。当我在我的其他函数中使用它时,它会工作一次,但是然后它开始出现错误,它不是函数。 这不是确切的代码,只是一个类似的示例代码。它产生一个错误,说“对象[对象DOMWindow]的TypeError:属性'跑'不是一个函数”为什么这样做?为什么它使我的功能,并使其不再是一个功能?

非常感谢

var buffer = []; 

function ran() { 
    return Math.round(Math.random()*10); 
}; 

function test(){ 
    var size = 6; 
    for (i=0; i<=size;i++) { 
     var num = ran(); 
     if (num === 2 || num === 3){ 
     buffer.push(num); 
     }; 
    }; 
}; 

回答

4

你的代码是好的,但是从错误,它看起来就像你分配一些值称为ran别的地方在你的代码中隐含的全局变量。

var buffer = []; 

function ran() { 
    return Math.round(Math.random()*10); 
}; 

function test() { 
    var size = 6; 
    for (i=0; i<=size;i++) { 
     var num = ran(); 
     if (num === 2 || num === 3){ 
     buffer.push(num); 
     }; 
    }; 
}; 

// ... somewhere else: 

function someOtherFunction() { 
    ran = 5; // This will break your run() function when 
      // someOtherFunction() is called. 
} 

如果是这种情况,请确保您的变量的范围限制在它们使用var关键字声明函数:

// ... somewhere else: 

function someOtherFunction() { 
    var ran = 5; // This will limit the scope of ran and will 
       // not conflict with the run() function. 
} 
+0

非常感谢。这是我有另一个输出true或false的函数,它有一个名为ran的局部变量。 – Isaiah 2010-08-14 03:59:41

相关问题