Javascript 我一直收到未捕获的TypeError:Object[Object global]在函数调用期间没有方法错误

Javascript 我一直收到未捕获的TypeError:Object[Object global]在函数调用期间没有方法错误,javascript,Javascript,我创建了一个函数,可以在第三次调用时执行一些独特的操作。在这种情况下,警告递增的数字。但是,当尝试从其他函数调用此函数时: “MyFunction();”,我得到未捕获的TypeError:Object[Object global]没有方法“MyFunction”。你能告诉我我做错了什么吗 var counter = 0; var num = 0; function = MyFunction() { // increment outside counter counter++; if (cou

我创建了一个函数,可以在第三次调用时执行一些独特的操作。在这种情况下,警告递增的数字。但是,当尝试从其他函数调用此函数时: “MyFunction();”,我得到未捕获的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;
 }
}
我也尝试过删除=符号,正如您在这里看到的,它不起作用

应该是:

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;
     }
}

只需删除
=
符号
函数MyFunction(){
,并确保您的小提琴中JS
位于正确的位置,请参阅下面的其他说明

例如:

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);
你的新小提琴:
您的旧版本不起作用,因为您没有为小提琴中的JS使用
无包裹体
。(请参阅左上角的选项面板)


因此,基本上,您需要将
标记放在
结束标记之前,以确保DOM在元素操作之前准备好并由JavaScript解析。

Syntacs在我看来是错误的,请尝试

var foo=myfunition(); 或 var foo=新功能()


取决于MyFunction()是什么。

@Brandon添加了一个demo@Brandon你的新小提琴:你的旧小提琴坏了,因为你没有把JS包裹在小提琴里。(见左上角的选项面板)好的,谢谢。我已经看到了,现在它可以工作了,但是在我的项目中它仍然不能工作。我得到了未捕获的TypeError:Object[Object global]没有“MyFunction”方法。在控制台中。@Brandon这可能意味着你没有删除
=
,或者你使用的
MyFunction
超出了范围。不,这很有用,我现在觉得很愚蠢:)实际上我上面的例子是假设的。我的实际代码是我的问题所在,但我感到困惑,认为这与功能。