js函数执行

有两点疑惑,请教一下
1.第一行执行addhas函数为什么没有弹框?
2.第二行执行函数为什么会报错说addhas不是函数?

var node =[1,2,3];
var addHas = function(nodes) {
  for (var i = 0, len = nodes.length; i < len; i++) {
    nodes[i].onclick = function(){
      alert(i);
      console.log(i);
    }
  }
};
addHas(node);
(addHas(node))();
阅读 2.1k
2 个回答

1.你的addHas函数只是为node数组里的每个元素绑定一个click事件, 可是这个函数里边存的不是DOM对象而是数字, 你倒是click一个我看看. 不click, 当然就不会有弹窗.

2.addHas是函数无疑, 但是仔细看看addHas的返回值, 并不是一个函数. 那(addHas(nonde)) 为什么会是函数呢?

楼上正解,没事加油,都是从一个一个坑里这么过来的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题