在js中,this关键字是一个比较让人有意思的东西,但是它的指向经常让初学者摸不着头脑。
其实要理解这个关键字,需要理清两个问题——“方法的调用和方法的触发”
下面先看一段代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>function</title> <script> function showThis(){ console.info(this); } function Test1(){ this.f=showThis; } function Test2(){ this.f=function(){ showThis(); } } showThis();//window new Test1().f();//Test1 new Test2().f();//window </script> </head> <body> </body> </html>
20行打印出window对象,这个很容易理解,但是21行打印出Test1的实例对象,而22行却打印出window对象。查看Test1和Test2的构造,发现方法f最终都执行了showThis方法。但是showThis中的this指向却不同。这是因为Test1中的f方法直接指向showThis,new Test1().f()是以Test1 的实例直接调用showThis方法,调用者是Test1的实例。而new Test2().f()是在Test2的实例方法f中触发window对象的showThis方法,其中的this就是指向其调用者window而不是触发者Test2的实例。
至此可以发现。this指向的是调用者,而触发者只是推进调用者执行指定方法而已。
本文向大家介绍javascript/jquery实现点击触发事件的方法分析,包括了javascript/jquery实现点击触发事件的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript/jquery实现点击触发事件的方法。分享给大家供大家参考,具体如下: 点击事件 原声态 和 jquery 感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具
本文向大家介绍jQuery实现自动调用和触发某个事件的方法,包括了jQuery实现自动调用和触发某个事件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现自动调用和触发某个事件的方法。分享给大家供大家参考,具体如下: 我以点击事件为例,研究一下这个话题: jQuery 自动触发点击事件 1.比如我们通过jquery定义了一个点击事件,我们如何自动触发他: 1)自动触发点
本文向大家介绍JavaScript中的类与实例实现方法,包括了JavaScript中的类与实例实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript中的类与实例实现方法。分享给大家供大家参考。具体如下: JavaScript 中没有父类, 子类的概念, 也没有class 和 instance 的概念, 全靠 prototype chain来实现继承. 当查找一个对象的
问题 你想在一个消息传输层如 sockets 、multiprocessing connections 或 ZeroMQ 的基础之上实现一个简单的远程过程调用(RPC)。 解决方案 将函数请求、参数和返回值使用pickle编码后,在不同的解释器直接传送pickle字节字符串,可以很容易的实现RPC。 下面是一个简单的PRC处理器,可以被整合到一个服务器中去: # rpcserver.py imp
问题内容: 如标题所示,这是一个有关实现细节的问题-那是内部数组的大小加倍时。有点罗word,但我确实试图证明我已尽力了解这一点… 这是在此特定存储桶/存储箱中的条目以某种方式存储的时候发生的-因此具有确切的顺序,在问题的上下文中, 这一点很重要 。 通常,也可以从其他地方调用,但是让我们只看这种情况。 假设您将这些字符串作为键放入(在右侧, 后面是 -内部重新哈希。)是的,它们是精心生成的,而不
问题内容: 我有一个applet,可以从特定的文件夹上载一些文件并删除它们,但是当我从javascript代码中调用applet函数时,出现了问题,当我从它调用该函数时,它工作正常。 我的小程序代码: 这是我的JavaScript代码: 当我从javascript调用时,仅打印日志: 请注意,当我从applet方法调用时,它可以正常工作。 我将代码包装到中,但仅前进了一步,然后继续 问题答案: J