gpt4 book ai didi

javascript - 为什么它夺走了我的功能并使其不再是一个功能?

转载 作者:行者123 更新时间:2023-11-28 16:36:56 27 4
gpt4 key购买 nike

我有一个返回 1-10 之间的随机数的函数。当我在其他函数中使用它时,它可以工作一次,但随后它开始出现错误,表明它不是函数。这不是确切的代码,只是一个类似的示例代码。它会产生一个错误,指出“TypeError:对象 [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);
};
};
};

最佳答案

您的代码没问题,但从错误来看,您似乎正在为代码中其他位置的名为 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.
}

关于javascript - 为什么它夺走了我的功能并使其不再是一个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481868/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com