首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么它接受我的函数,并使它不再是一个函数?

为什么它接受我的函数,并使它不再是一个函数?
EN

Stack Overflow用户
提问于 2010-08-14 11:14:19
回答 1查看 65关注 0票数 0

我有一个函数,它返回一个从1到10的随机数。当我在另一个函数中使用它时,它只工作了一次,但随后它开始出现错误,表明它不是一个函数。这不是确切的代码,只是相似的示例代码。它会产生一个错误:"TypeError: object object DOMWindow的属性'ran‘不是一个函数“为什么要这样做?

非常感谢

代码语言:javascript
运行
复制
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);
      };
   };
};
EN

Stack Overflow用户

回答已采纳

发布于 2010-08-14 11:22:28

您的代码没有问题,但从错误中看,您似乎是在为代码中其他位置名为ran的隐含全局变量赋值。

代码语言:javascript
运行
复制
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关键字声明变量的函数:

代码语言:javascript
运行
复制
// ... somewhere else:

function someOtherFunction() {
   var ran = 5;  // This will limit the scope of ran and will 
                 // not conflict with the run() function.
}
票数 4
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3481868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档