`

js中的this关键字

    博客分类:
  • js
 
阅读更多

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关键字使用方法详解

    在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...

    深入理解JavaScript中的this关键字

    JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...

    详解JavaScript中this关键字的用法_.docx

    在JavaScript中,`this`关键字是一个非常重要的概念,它指的是当前执行上下文中的对象。`this`的值取决于函数的调用方式,而不是定义方式。下面我们将详细探讨在不同场景下`this`的用法。 1. **全局作用域中调用...

    js原生态函数中使用jQuery中的 $(this)无效的解决方法.docx

    在JavaScript开发中,使用jQuery的$(this)对象需要遵守JavaScript中this关键字的使用规则。通过使用变量来存储当前函数的this对象,我们可以正确地使用$(this)对象。在开发中,我们需要注意this关键字的使用规则,以...

    跟我学习javascript的this关键字

    在JavaScript中,`this`关键字是一个经常被讨论的话题,因为它在不同的上下文中具有不同的含义。`this`关键字是动态绑定的,也称为运行期绑定,这意味着它会根据函数调用的方式和所在的上下文来改变其指向。这种动态...

    js中的this关键字详解

    JavaScript中的`this`关键字是一个非常重要的概念,它用于在函数执行时引用当前上下文的对象。`this`的值取决于函数被调用的方式,这通常分为四种情况:纯粹的函数调用、作为对象方法的调用、作为构造函数调用以及...

    如何使用Javascript中的this关键字

    在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用函数执行时的上下文对象。`this`的值取决于函数被调用的方式,而不是函数定义的位置。在不同的场景下,`this`的指向会发生变化,这使得它成为...

    关于javascript中this关键字(翻译+自我理解)

    首先,让我们了解JavaScript中的this关键字。在JavaScript中,this的指向不像其他一些面向对象的编程语言中那样固定,而是依赖于函数的调用方式。在传统的面向对象语言中,this关键字通常指代当前对象,但在...

    图解JavaScript中的this关键字

    其中JavaScript 中的 this 关键字,就是一个比较容易混乱的概念,在不同的场景下,this会化身不同的对象。有一种观点认为,只有正确掌握了 JavaScript 中的 this 关键字,才算是迈入了 JavaScript 这门语言的门槛。...

    精通JavaScript的this关键字_.docx

    JavaScript中的`this`关键字是一个非常重要的概念,它在编程中起着至关重要的作用,尤其是在对象方法的上下文中。`this`关键字的用法类似于自然语言中的代词,它用来引用当前执行上下文的对象,帮助开发者避免命名...

    javascript中this关键字详解

    在JavaScript中,`this`关键字是面向对象编程中的核心概念之一,它代表了函数的执行上下文,通常指向调用该函数的对象。理解`this`的含义和它在不同场合下的指向对于编写高效且符合预期的JavaScript代码至关重要。...

    Javascript中this关键字指向问题的测试与详解

    this是Javascript中一个非常容易理解错...所以下面这篇文章主要给大家介绍了关于Javascript中this关键字指向问题的相关资料,文中通过测试的题目考验大家对this的熟悉程度,需要的朋友可以参考借鉴,下面来一起看看吧。

    JavaScript中this关键字用法实例分析

    在JavaScript中,`this`关键字是一个非常重要的概念,它用于引用当前执行上下文的对象。`this`的值在运行时动态确定,根据函数被调用的方式而变化。下面我们将通过一系列实例来深入理解`this`的关键字用法。 首先,...

    Javascript中this关键字的一些小知识

    首先,我们要明确,JavaScript中的this关键字是一个非常重要的概念,它代表函数执行时的上下文环境。在不同的情况下,this的指向是不同的。本文将主要探讨this的隐性绑定和如何在复杂的作用域中使用变量来引用this,...

    深入解析JavaScript编程中的this关键字使用

    JavaScript中的`this`关键字是一个非常核心的概念,它用于在函数执行时引用当前上下文的对象。在JavaScript中,`this`的值取决于函数被调用的方式,而不是函数定义的位置。理解`this`的工作原理对于深入掌握...

    PPK 谈 JavaScript 的 this 关键字 [翻译]

    JavaScript的 this 总指向所运行的函数“自己本身”。也就是说,它是一种指向函数对象的方法。在页面中定义 doSomething() 函数,自己本身是指页面。也就是说,是指 JavaScript 的 window 对象(全局对象)。而 ...

    js this关键字_面向对象编程.pdf

    `this` 关键字在 JavaScript 中非常重要,尤其是在面向对象编程中。它代表当前执行上下文的对象,具体指代什么取决于 `this` 的使用环境。 - **全局上下文中**:在非严格模式下,`this` 指向全局对象(在浏览器中...

Global site tag (gtag.js) - Google Analytics