我创建了一个函数,它会在第三次调用时执行一些独特的操作。在这种情况下,请警告增加的数字。但是,当尝试从另一个函数调用此函数时: “MyFunction();”,我得到 Uncaught TypeError: Object [object global] has no method '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/它不起作用。
最佳答案
只需删除 =
标志function MyFunction() {
并确保在你的 fiddle 中 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);
你的新 fiddle :http://jsfiddle.net/DN3yC/7
你的旧的不能工作,因为你没有使用No Wrap - in body
对于你的 fiddle 中的 JS。 (请参阅左上角的选项面板)
所以基本上你需要把你的 <script>
</body>
之前的标签结束标记以确保 DOM 在元素操作之前已准备好并由 JavaScript 解析。
关于javascript - 我不断收到 Uncaught TypeError : Object [object global] has no method error during function call,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977410/