http://www.jb51.net/article/41656.htm
this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用,下面分四种情况,详细讨论this的用法
this是Javascript语言的一个关键字。
它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如,
function test(){ this.x = 1; }
随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。
下面分四种情况,详细讨论this的用法。
情况一:纯粹的函数调用
这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。
请看下面这段代码,它的运行结果是1。
function test(){ this.x = 1; alert(this.x); } test(); // 1
为了证明this就是全局对象,我对代码做一些改变:
var x = 1; function test(){ alert(this.x); } test(); // 1
运行结果还是1。再变一下:
var x = 1; function test(){ this.x = 0; } test(); alert(x); //0
情况二:作为对象方法的调用
函数还可以作为某个对象的方法调用,这时this就指这个上级对象。
function test(){ alert(this.x); } var o = {}; o.x = 1; o.m = test; o.m(); // 1
情况三 作为构造函数调用
var x = 2; function test(){ this.x = 1; } var o = new test(); alert(x); //2
所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。
运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:
var x = 2; function test(){ this.x = 1; } var o = new test(); alert(x); //2
运行结果为2,表明全局变量x的值根本没变。
情况四 apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象。因此,this指的就是这第一个参数。
var x = 0; function test(){ alert(this.x); } var o={}; o.x = 1; o.m = test; o.m.apply(); //0
apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。
如果把最后一行代码修改为
o.m.apply(o); //1
运行结果就变成了1,证明了这时this代表的是对象o
相关推荐
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...
在JavaScript中,`this`关键字是一个非常重要的概念,它指的是当前执行上下文中的对象。`this`的值取决于函数的调用方式,而不是定义方式。下面我们将详细探讨在不同场景下`this`的用法。 1. **全局作用域中调用...
在JavaScript开发中,使用jQuery的$(this)对象需要遵守JavaScript中this关键字的使用规则。通过使用变量来存储当前函数的this对象,我们可以正确地使用$(this)对象。在开发中,我们需要注意this关键字的使用规则,以...
在JavaScript中,`this`关键字是一个经常被讨论的话题,因为它在不同的上下文中具有不同的含义。`this`关键字是动态绑定的,也称为运行期绑定,这意味着它会根据函数调用的方式和所在的上下文来改变其指向。这种动态...
JavaScript中的`this`关键字是一个非常重要的概念,它用于在函数执行时引用当前上下文的对象。`this`的值取决于函数被调用的方式,这通常分为四种情况:纯粹的函数调用、作为对象方法的调用、作为构造函数调用以及...
在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用函数执行时的上下文对象。`this`的值取决于函数被调用的方式,而不是函数定义的位置。在不同的场景下,`this`的指向会发生变化,这使得它成为...
首先,让我们了解JavaScript中的this关键字。在JavaScript中,this的指向不像其他一些面向对象的编程语言中那样固定,而是依赖于函数的调用方式。在传统的面向对象语言中,this关键字通常指代当前对象,但在...
其中JavaScript 中的 this 关键字,就是一个比较容易混乱的概念,在不同的场景下,this会化身不同的对象。有一种观点认为,只有正确掌握了 JavaScript 中的 this 关键字,才算是迈入了 JavaScript 这门语言的门槛。...
JavaScript中的`this`关键字是一个非常重要的概念,它在编程中起着至关重要的作用,尤其是在对象方法的上下文中。`this`关键字的用法类似于自然语言中的代词,它用来引用当前执行上下文的对象,帮助开发者避免命名...
在JavaScript中,`this`关键字是面向对象编程中的核心概念之一,它代表了函数的执行上下文,通常指向调用该函数的对象。理解`this`的含义和它在不同场合下的指向对于编写高效且符合预期的JavaScript代码至关重要。...
this是Javascript中一个非常容易理解错...所以下面这篇文章主要给大家介绍了关于Javascript中this关键字指向问题的相关资料,文中通过测试的题目考验大家对this的熟悉程度,需要的朋友可以参考借鉴,下面来一起看看吧。
在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用当前执行上下文的对象。`this`的值在运行时动态确定,根据函数被调用的方式而变化。下面我们将通过一系列实例来深入理解`this`的关键字用法。 首先,...
首先,我们要明确,JavaScript中的this关键字是一个非常重要的概念,它代表函数执行时的上下文环境。在不同的情况下,this的指向是不同的。本文将主要探讨this的隐性绑定和如何在复杂的作用域中使用变量来引用this,...
JavaScript中的`this`关键字是一个非常核心的概念,它用于在函数执行时引用当前上下文的对象。在JavaScript中,`this`的值取决于函数被调用的方式,而不是函数定义的位置。理解`this`的工作原理对于深入掌握...
JavaScript的 this 总指向所运行的函数“自己本身”。也就是说,它是一种指向函数对象的方法。在页面中定义 doSomething() 函数,自己本身是指页面。也就是说,是指 JavaScript 的 window 对象(全局对象)。而 ...
`this` 关键字在 JavaScript 中非常重要,尤其是在面向对象编程中。它代表当前执行上下文的对象,具体指代什么取决于 `this` 的使用环境。 - **全局上下文中**:在非严格模式下,`this` 指向全局对象(在浏览器中...