我有一个函数,它返回一个从1到10的随机数。当我在另一个函数中使用它时,它只工作了一次,但随后它开始出现错误,表明它不是一个函数。这不是确切的代码,只是相似的示例代码。它会产生一个错误:"TypeError: object object DOMWindow的属性'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);
};
};
};发布于 2010-08-14 11:22:28
您的代码没有问题,但从错误中看,您似乎是在为代码中其他位置名为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.
}https://stackoverflow.com/questions/3481868
复制相似问题