Javascript 我一直收到未捕获的TypeError:Object[Object global]在函数调用期间没有方法错误
我创建了一个函数,可以在第三次调用时执行一些独特的操作。在这种情况下,警告递增的数字。但是,当尝试从其他函数调用此函数时: “MyFunction();”,我得到未捕获的TypeError:Object[Object global]没有方法“MyFunction”。你能告诉我我做错了什么吗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
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
超出了范围。不,这很有用,我现在觉得很愚蠢:)实际上我上面的例子是假设的。我的实际代码是我的问题所在,但我感到困惑,认为这与功能。