这样调用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/