且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

javascript - js匿名函数作用域问题

更新时间:2023-02-26 08:45:23

(function(){
    var login_inputs = loginForm.getElementsByTagName('input');
    ...
    login_inputs.forEach(function(item,index,array){});
})()

以上代码再执行前
如果loginForm未定义过,报 ReferenceError: Can't find variable: loginForm
如果loginForm定义过并且是一个DOM元素,那么login_inputs为一个NodeList对象,这个对象没有forEach方法的,所以会报forEach is not a function
想要使用Array的forEach方法,使用函数的call/apply方法

Array.prototype.forEach.call(login_inputs, function( item,index,array ){
  console.log(item);
});