zoukankan      html  css  js  c++  java
  • js this指向

    <button id="bt" name="bt001">click me</button>
    <script type="text/javascript">
    var name="somebody";
    var btn=document.getElementById("bt");
    var co={
    	name:"co",
    	say:function(){
    		alert("I am "+this.name);
    	}
    };
    //co.say();                                                 //co
    //setTimeout(co.say,1000);                                  //somebody
    //setInterval(co.say,1000);                                 //somebody
    //setTimeout(function(){co.say()},1000);                    //co
    //setInterval(function(){co.say()},1000);                   //co
    //btn.onclick=co.say;                                       //bt001 
    //btn.onclick=function(){
    //	co.say();                                               //co
    //}
    
    //setTimeout(function(){alert(this==window)},1000);         //true
    //btn.onclick=function(){                                   //true
    //	alert(this==btn);
    //}
    //setTimeout, setInterval, DomNode.onXXX改变的都是直接调用的函数里的this的指向
    //其中,setTimeout和setInterval将直接调用的函数里的this指向window,DomNode.onXXX将this指向DomNode
    //使用匿名函数将处理函数封装起来,可以将处理函数由直接调用变成通过匿名函数间接调用。
    
    //还可以通过call和apply来改变处理函数的this指向
    //co.say.call(btn);                                         //bt001
    //setTimeout(function(){co.say.call(btn)},1000);            //bt001
    //btn.onclick=function(){                                   //bt001
    //	co.say.call(this);
    //}
    //setTimeout(function(){co.say.apply(btn)},1000);           //bt001
    </script>
    

      

  • 相关阅读:
    docker 原理之 mount namespace(下)
    docker 原理之 namespace (上)
    十种世界顶级思维方式
    Go 标准库 net
    斐波拉契序列的 Go 实现
    channel 是怎么走上死锁这条路的
    hello world 的并发实现
    使用链表和切片实现栈和队列
    非暴力沟通-读后感
    CCS
  • 原文地址:https://www.cnblogs.com/frostbelt/p/2388711.html
Copyright © 2011-2022 走看看