带列表的Javascript方法调用

带列表的Javascript方法调用,javascript,Javascript,这样调用javascript方法正确吗 var flag = this.totalSubarrayLengths([ document.getElementsByTagName('ol'), document.getElementsByTagName('ul') ]) var totalSubarrayLengths = function(container) { total = 0; for (var val in container) {

这样调用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
    作为关键字调用函数,这是一个简单的函数,而不是类。请看一下

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

  • 在函数中,
    total
    用于声明的每个循环,它与
    +=
    一个意外标记相结合

  • 您必须使用
    val
    作为计数的
    容器的索引

var flag=totalsubraylength([document.getElementsByTagName('ol'),document.getElementsByTagName('ul'))
函数总子数组长度(容器){
var total=0,val;
用于(容器中的val){
合计+=容器[val]。长度;
}
返回总数;
}
文件写入(“总计:”+标志)
  • ul

    • ol
    • ol
    • ol
    • ol
顺便说一句,针对数组使用的
中…的
将把索引放在
val
中,因此您不能将
val.length
做错。你很快抛出了一个代码,作为第一个添加答案的人:)不,我理解在这样的情况下不应该做什么。大多数情况下,我宁愿是最后一个添加答案的人,但给出一个有效且解释清楚的答案。有时,被标记为正确答案的答案并不是投票数更多的答案。顺便说一句,没有人应该添加答案只是为了看看一个数字是如何增加的。。。