带有列表的 Javascript 方法调用

标签 javascript

这样调用javascript方法是否正确

 var flag = this.totalSubarrayLengths([ document.getElementsByTagName('ol'), document.getElementsByTagName('ul') ])

 var totalSubarrayLengths = function(container) {
        total = 0;

        for (var val in container) {
            var total += val.length;
        }

        return total;
    }

最佳答案

总的来说,没有。

  • 您尝试以 this 作为关键字调用一个函数,这是一个简单的函数,而不是一个类。请看this .

  • 稍后应该包含函数的变量被提升,没有内容。更好的方法是使用函数语句 function fn() {...},而不是函数表达式 fn = function () {...},因为函数语句是总是被提升,这意味着它们被移动到程序的开头并且代码中的位置无关紧要。

  • 在函数中,total 是针对每个声明的循环,它与 += an unexpected token 组合在一起。

  • 您必须使用 val 作为 container 的索引进行计数。

var flag = totalSubarrayLengths([document.getElementsByTagName('ol'), document.getElementsByTagName('ul')])

function totalSubarrayLengths(container) {
    var total = 0, val;
    for (val in container) {
        total += container[val].length;
    }
    return total;
}
document.write('total: ' + flag);
<ul><li>ul</li></ul>
<ol><li>ol</li><li>ol</li><li>ol</li><li>ol</li></ol>

关于带有列表的 Javascript 方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32242742/

相关文章:

javascript - 为什么 $.isnumeric 是假的

javascript - d3 强制拖动布局上的多个拖动功能

javascript - 将数据从 asp.net-mvc 传递到 javascript 的最佳实践

javascript - ExtJs 模式面板 Controller 看不到我的网格

javascript - 如果单击复选框或单击其父 div,如何突出显示/取消突出显示 div?

javascript - 如何在 Asp .Net Core 中设置序列化

JavaScript 匹配返回匹配项加上空字符串

javascript - rxjs 在 map Rx.Observable.range(1, 5).map 中使用 async/await

javascript - Contenteditable Div - 根据 innerHTML 位置的光标位置

javascript - for 循环内的函数 - 如何正确执行?