• JavaScript关于事件绑定


    var odiv=document.getElementsByTagName('div');
    function divclick(obj){
    obj.onclick=function(){
    console.log(obj);
    }
    }
    for (var i = 0; i < odiv.length; i++) {
    divclick(odiv[i]);
    }
    //当执行点击函数时,还需要divclick函数,因此当循环结束时,divclick函数并不会被销毁,因此其作用域也被保留下来,因此正常输出
    
    for (var i = 0; i < odiv.length; i++) {
    odiv[i].onclick=function(){
    console.log(odiv[i]);//此时i已经变化了
    }
    }
    //循环结束,绑定函数结束,函数自身、作用域、变量等都随之销毁,当执行onclick函数时,i值通过作用域链向上找,最后i作为全局变量且值为odiv.length+1,因此输出undefined
    
    for (var i = 0; i < odiv.length; i++) {
    odiv[i].onclick=function(){
    console.log(this);
    }
    }
    //这里涉及到this的指向问题,this指向调用的对象,且this指向是在函数执行时才确定的,并不是在函数定义时确定的
    //当点击事件触发函数时,this指向调用对象,而这里的调用对象正是odiv[i],因此正常输出
    

      

  • 相关阅读:
    POI2012 (持续更新中)
    [BZOJ2797][Poi2012]Squarks
    [BZOJ2796][Poi2012]Fibonacci Representation
    [BZOJ2791][Poi2012]Rendezvous
    [BZOJ2795][Poi2012]A Horrible Poem
    [BZOJ2794][Poi2012]Cloakroom
    纸张概率/期望题
    2016-5-11授课
    bzoj4519: [Cqoi2016]不同的最小割
    poj3693 Maximum repetition substring
  • 原文地址:https://www.cnblogs.com/chenyongyang/p/7708090.html
Copyright © 2020-2023  润新知