我创建了一个函数,可以在第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/它不起作用。
答案 0 :(得分:1)
只需移除=
符号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()是什么。