在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如c++.c#与java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了,用起来是非常方便与意义确定的.javascript也提供了这个this关键字,不过用起来就比经典oo语言中要"混乱"的多了.
【程序编程相关:全面优化和配置Windows2003】 【推荐阅读:百分之百纯 Java(TM) java名】 下面就来看看,在javascript中各种this的使用方法有什么混乱之处? 【扩展信息:[背景]Symbian大事记 】 1.在html元素事件属性中inline方式使用this关键字: <div onclick=" // 可以在里面使用this ">division element</div> 我们一般比较常用对的方法是在此使用:javascirpt: eventhandler(this),这样的形式.不过这里其实可以写任何合法的javascript语句,要是高兴在此定义个类也可以(不过将会是个内部类).这里的原理是脚本引擎生成了一个div实例对象的匿名成员方法,而onclick指向这个方法. 2.用dom方式在事件处理函数中使用this关键字: <div id="elmtdiv">division element</div> <script language="javascript"> var div = document.getelementbyid(´elmtdiv´); div.attachevent(´onclick´, eventhandler); function eventhandler() { // 在此使用this } </script> 这时的eventhandler()方法中的this关键字,指示的对象是ie的window对象.这是因为eventhandler只是一个普通的函数,对于attachevent后,脚本引擎对它的调用与div对象本身没有任何的关系.同时你可以再看看eventhandler的caller属性,它是等于null的.如果我们要在这个方法中获得div对象引用,应该使用:this.event.srcelement. 3.用dhtml方式在事件处理函数中使用this关键字:... 下一页