• 关于this的指向问题


    一个关于this指向而引发的血案。。。

    在测试this指向的程序中,我写错了id对象,结果呢,居然也有效果,这真是超于我意料之外太多了,我以为自己写错了,结果一样可以用。。。。。。。

    <div id="bbb">show</div>
    
    <script>
    	// window.onload = function(){
    	// 	//
     //        var s = document.getElementById('bbb');
     //        s.onclick = showThis;//this == div#show	
     //        bbb.onclick = function(){
     //        	console.log(showThis);//返回的是定义showThis的内容
     //        	showThis();//this = window
     //        }	
     //        // showThis();//this = window
    	// }
    	// function showThis(){
    	// 	console.log(this);
    	// }
    	window.onload = function(){
    		//直接使用id的方式调用方法,ie7,8,9,10,11,都支持,只不过ie7都返回object,其他都是[object Window],[object HTMLDivElement]bbb
            var s = document.getElementById('bbb');
            s.onclick = showThis;//this == div#show	
            bbb.onclick = function(){
            	showThis();//this = window
            	alert(this+'bbb')
            }	
            // showThis();//this = window
    	}
    	function showThis(){
    		alert(this);
    	}
    </script>
    

    做一点总结: window.onload = function(){

            //直接使用id的方式调用方法,ie7,8,9,10,11,都支持,只不过ie7都返回object,其他都是[object Window],[object HTMLDivElement]bbb
            var s = document.getElementById('bbb');
            console.log(s[onclick])
            // s.onclick = showThis;//this == div#show
            s.onclick = showThis;//实际上是把showThis的内容赋值给s.onclick,在未赋值前,s[onclick]为undifined
    s.onclick = showThis();//实际上和showThis()一样,也没有返回值,这样的方式其实在onclick为赋值前,showThis已经执行了; s.onclick = function(){//也是赋值,但是因为showThis是在外面定义的,所以showThis的this还是window showThis() } s.onclick = function(){//相当于s.onclick = showThis;也是赋值 alert(this) } // s.onclick = showThis(); // bbb.onclick = function(){ // showThis();//this = window // alert(this+'bbb') // } // showThis();//this = window } function showThis(e){ alert(this); }

      

  • 相关阅读:
    mapredsite.xml 基本配置参考 北漂
    Hadoop 构建HA 北漂
    Hadoop Capacity调度器概念及配置 北漂
    hadoop(1)hadoop的介绍和几种模式。 北漂
    如何查看Linux cpu核数、版本等信息 北漂
    NTP服务器搭建 北漂
    Hadoop hadoop(2.9.0)uber模式(小作业“ubertask”优化) 北漂
    如何利用awk计算文件某一列的平均值? 北漂
    Hadoop 安装之本地模式与分布式模式 北漂
    我的博客之旅。 北漂
  • 原文地址:https://www.cnblogs.com/bestsamcn/p/5498048.html
Copyright © 2020-2023  润新知