JavaScript 中 this用法详解

1、JavaScript中,执行代码必须放入函数中,如果没有显示写入函数中,则代码会自动被放入window的某个成员函数中;
2、JavaScript的函数都是成员函数,一定属于某个对象,如果没有显示指定此对象,那么这个函数就属于window对象;
3、
JavaScript函数的执行方式有三种,一是作为成员函数来调用,此时函数体内的this指向函数所属对象;二是作为构造函数来调用,此时函数体内的
this指向通过此构造函数新创建的对象;三是通过apply或call调用,此时函数体内的this是被参数控制的。
4、this的指向与定义函数的语法与位置无关,只与函数被调用的方式有关。

以上是从 http://www.2cto.com/kf/201208/149899.html 中copy的总结部分的文本。对于初学JS的我来说好比牛顿发现了新大陆 = =

------------------------------------------------------------------------------------------------------------------------------------

先是将所有JS的执行代码归入函数,若没有明确的函数,则会自动被放入window的某个成员函数

所有JS代码归入函数后,再将函数归入对象。JS所有函数都是成员函数,所有一定属于某对象。若没有,则属于Window对象。

eg: document.write("xxx");   --->  function x(xx){document.write("xxx");}  ---> window(){ x(xx) }

全部规整完之后,就可以很好的讨论this的上下文了。

首先要明确:This的执行上下文是在运行过程中确定的,而作用于则是在定义的时候就确定好了的。

然后就找上述说的,一是作为成员函数来调用,此时函数体内的this指向函数所属对象;二是作为构造函数来调用,此时函数体内的this指向通过此构造函数新创建的对象;三是通过apply或call调用,此时函数体内的this是被参数控制的。

以上 2016-01-10 14:55:39

时间: 2024-10-10 15:34:10

JavaScript 中 this用法详解的相关文章

【JavaScript中的this详解】

前言 this用法说难不难,有时候函数调用时,往往会搞不清楚this指向谁?那么,关于this的用法,你知道多少呢? 下面我来给大家整理一下关于this的详细分析,希望对大家有所帮助! this指向的规律 this指向的规律往往与函数调用的方式息息相关:this指向的情况,取决于函数调用的方法有哪些. 我们来看一下姜浩五大定律: 姜浩五大定律: ①通过函数名()直接调用:this指向window: ②通过对象.函数名()调用的:this指向这个对象: ③函数作为数组的一个元素,通过数组下标调用的

【好文收藏】javascript中event对象详解

event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转. <HTML> <HEAD><TITLE>Cancels Links</T

javascript中event对象详解

event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义. 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转. 前端UI资源I分享 <HTML> <HEAD><TITLE>Cancels L

JavaScript中的this详解

  前  言  this  JavaScript中的this详解 this详解 This的指向有几种情况?如何人为控制? [谁调用this,this指向谁!!] [this的指向,不关心this写在哪!!只关心包含this的函数,由谁调用!!] ①   通过()直接调用,this指向window  func(); ②   对象.函数调用,this指向当前对象. Obj.func()    div.onclick = function(){} ③   数组下标调用,this指向当前数组   [fu

JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 exec方法的返回值 exec方法返回的其实并不是匹配结果字符串,而是一个对象,简单地修改一下execReg函数,来做一个实验就可以印证这一点: function execReg(reg, str) { var result = reg.exec(str); alert(typeof result

javascript中addEventListener(attachEvent)详解

addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture.例子如下:  <button type="button">点击我</button> <img src="11 (6).jpg" alt="" style="display:block"> <s

C#中const用法详解

本文实例讲述了C#中const用法.分享给大家供大家参考.具体用法分析如下: const是一个c语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助.另外const在其他编程语言中也有出现,如c++.php5.c#.net.hc08 c const 一般修饰 的变量为只读变量 const定义应该为在定义的时候初始化 以后不能改变他的值 例: 代码如下: const

js中 javascript:void(0) 用法详解(未整理)

javascript:void(0) 用于执行某些处理,但是不整体刷新页面的情况下使用. javascript:void(0)表示不做任何动作.如: <a href="javascript:void(0);" onclick="alert('ok');"></a> 这里表示这个链接不做跳转动作,执行onClick事件. 我想使用过ajax的都常见这样的代码: <a href="javascript:doTest2();void

轻松学习JavaScript二十九:JavaScript中的this详解

这几天在看很多的JS的代码,多次出现this关键字,有时候表示不理解,就仔细看了这一方面的知识. 在JavaScript语言中,this的定义是:this是包含它的函数作为方法被调用时所属的对象.说明:这句话有点咬 嘴,但一个多余的字也没有,定义非常准确,我们可以分3部分来理解它:1包含它的函数.2作为方法被调用时.3所 属的对象.随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是,调用函数的那 个对象. this是Javascript语言的一个关键字,它代