我有一个从1-10返回随机数的函数。当我在我的其他函数中使用它时它会工作一次,但它会开始出现一个错误,它不是一个函数。 这不是确切的代码,只是一个类似的示例代码。它产生一个错误,说“对象[对象DOMWindow]的TypeError:Property'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);
};
};
};
答案 0 :(得分: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.
}