我一直收到Uncaught TypeError:对象[object global]在函数调用期间没有方法错误

时间:2014-02-24 01:41:35

标签: javascript

我创建了一个函数,可以在第3次调用时执行一些独特的操作。在这种情况下,请提醒增加的号码。但是,当尝试从另一个函数调用此函数时: “MyFunction();”,我得到Uncaught TypeError:Object [object global]没有方法'MyFunction'。你能告诉我我做错了吗?

var counter = 0;
var num = 0;

function = MyFunction() {
// increment outside counter
counter++;
if (counter === 3) {
    // do something every third time
    num++;
    alert('the new number is: ' + num);
    // reset counter
    counter = 0;
 }
}

我也尝试删除=符号,正如您在此处看到的那样http://jsfiddle.net/DN3yC/6/它不起作用。

3 个答案:

答案 0 :(得分:1)

LIVE DEMO

只需移除=符号function MyFunction() {,并确保在您的小提琴中JS <script>位于正确位置请参阅下面的其他说明

示例:

var element = document.getElementById('button');
var counter = 0;
var num = 0;

function MyFunction() {
   counter = ++counter % 3; // loop count
   if ( !counter ) {
      num++;
      alert('the new number is: ' + num);
   }
}


//On click:
element.addEventListener('click', MyFunction, false);

你的新小提琴:http://jsfiddle.net/DN3yC/7
你的旧一个没有工作因为你没有在你的小提琴中使用No Wrap - in body作为JS。 (参见左上角的选项面板)

所以基本上你需要在<script>结束标记之前放置</body>标记,以确保在元素操作之前DOM已经准备好并由JavaScript解析。

答案 1 :(得分:0)

应该是:

var MyFunction=function () {
    // increment outside counter
    counter++;
    if (counter === 3) {
        // do something every third time
        num++;
        alert('the new number is: ' + num);
        // reset counter
        counter = 0;
     }
}

答案 2 :(得分:0)

Syntacs对我来说不对,请尝试

var foo = Myfuntion(); 要么 var foo = new MyFuntion();

取决于MyFuntion()是什么。