`
jonson
  • 浏览: 168463 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

js的this指针理解

    博客分类:
  • js
阅读更多

因为发现身边的一些朋友对js的this指针的理解不是很全面。下面本人简单的讲解一下js的this指针的相关内容,仅供需要的朋友学习参考。

简单的,我先用一句话来概括javascript的this。在js里面,this指针代表的是执行当前代码的对象的所有者。

下面举几个简单的例子加以说明:

var name="jonson";
function test(){alert("您好,我的名字叫"+this.name);}
test();

  这段代码很简单,我们定义了一个全局变量name,一个全局的function,最后调用了这个test方法。运行这段代码,会弹出"您好,我的名字叫jonson"。

这里的test方法以及name方法都属于js的最初始的对象window的。简单的说:下面调用test方法的对象就是window。

 

var obj={};
var name="jonson_window";
obj.name="jonson_obj";
obj.test=function (){alert("您好,我的名字是"+this.name)};
obj.test();

  运行这段代码,页面弹出"您好,我的名字是jonson_obj",而不是"您好,我的名字是jonson_wondow"。因为最后一句obj.test(),指的是obj对象调用test方法,所以这里的

this.name指的自然就是obj.name的值。

function test(){      
alert(this.title);
}
<input  type="button" value="test" onclick="test()" id="test" title="test">

  运行这段代码页面弹出undefined字样。有人会说,我的input标签里面明明有title属性的值为test的。但是这里为什么会弹出undefined字样呢。其实道理很简单,这里是通过onclick方法调用的。其实onclick="test()",相当于function onclick(evenet){test();},而function onclick其实也是一个全局的function,上面的 test方法也是全局的function,都可以视为window对象的两个属性。这里其实就是通过这个在onclick方法里面调用这个test方法,其实这里和第一种说法是一样的。

通过以上的几个例子,我相信大家都多少理解了js的this指代含义------this指针代表的是执行当前代码的对象的所有者。

我希望大家看完这个博客之后,可以自己去测试一下,加深对js的this指代的理解。

分享到:
评论
3 楼 shenya2 2015-12-09  
2 楼 cl1154781231 2014-10-21  
看明白了,不错的文章,我转咯,会注明出处。
1 楼 aykjy 2014-05-06  

谢谢讲解

相关推荐

    高手详解javascript中的this指针

    `this`在JavaScript中并不像其他静态类型语言(如Java或C++)中的指针那样工作,而是根据函数调用的方式动态确定其值。以下是对`this`指针的详细解释: 1. **全局作用域中的`this`** 在全局作用域中,`this`通常...

    详解Javascript 中的this指针

    `this`指针是JavaScript中一个极其重要的概念,理解其工作原理对于有效地编写面向对象的JavaScript代码至关重要。通过掌握`this`的动态性质和作用域规则,开发者可以避免常见的错误,如`this`未按预期引用对象的问题...

    探寻JavaScript中this指针指向_.docx

    探寻JavaScript中this指针指向 JavaScript中的this指针指向是一个复杂的问题,需要深入了解JavaScript的函数调用机制和对象模型...理解this指针指向是JavaScript编程的基础之一,对于编写高效、可维护的代码非常重要。

    详解Javascript 中的this指针.doc

    由于JavaScript是一种基于原型的动态类型语言,`this`的值在不同的执行环境中可能会有所不同,这使得理解和使用`this`成为了一个挑战,特别是对于那些熟悉静态类型的开发者来说。 首先,我们要明确`this`的基本规则...

    高手详解javascript中的this指针.pdf

    在JavaScript中,`this`...总结来说,`this`是JavaScript中面向对象编程的核心组成部分,理解和正确使用它可以避免许多常见的编程陷阱。通过深入理解`this`的工作原理,开发人员能够更高效、更准确地编写可维护的代码。

    高手详解javascript中的this指针借鉴.pdf

    正确理解和运用`this`是成为JavaScript高手的必经之路。在设计和编写复杂的对象交互逻辑时,深入理解`this`的机制能避免许多常见的错误和陷阱。 总结一下,`this`在JavaScript中的核心作用是引用执行代码时的上下文...

    对JavaScript中this指针的新理解分享

    JavaScript 中的 `this` 指针是动态绑定的,它的值取决于函数的调用方式。理解这四种调用模式对于深入掌握 JavaScript 的面向对象编程至关重要。在方法调用模式中,`this` 指向调用该方法的对象;在函数调用模式中,...

    老生常谈Javascript中的原型和this指针

    在JavaScript中,理解this指针的指向对于编写可靠和高效的代码非常重要,因为它决定了当前上下文中的变量和函数是如何被访问和操作的。错误地使用this指针可能会导致意外的行为或运行时错误。 通过上面的介绍,我们...

    探寻JavaScript中this指针指向

    探寻JavaScript中this指针指向 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为...

    改变javascript函数内部this指针指向的三种方法

    总结来说,理解JavaScript中this关键字的指向规则,掌握如何控制this的指向是编写有效JavaScript代码的关键技能之一。无论是在日常的函数调用中,还是在更复杂的库和框架的实现中,对this的正确理解可以帮助开发者...

    你必须知道的Javascript知识点之&quot;this指针&quot;的应用

    对于JavaScript开发者来说,理解this指针的工作方式对于编写可预测且有效的代码至关重要。 首先,我们要明白在JavaScript中,this指针的指向并不是固定不变的,它的值取决于函数的调用方式。最基础的默认this指针...

    Javascript this指针

    在JavaScript中,"this"是一个关键字,它是一个指针,指向函数执行时的上下文对象。在JavaScript中,几乎所有的东西都是对象,包括函数,因此"this"可以在不同的上下文中有不同的意义。 1. 全局上下文中的this:在...

    小议Javascript中的this指针

    正确理解和运用`this`是JavaScript开发者必须掌握的技能之一。在不同的执行环境中,`this`的指向也有所不同,特别是在全局执行环境、函数执行环境以及构造函数中。 首先,在全局执行环境中,`this`指向全局对象。在...

    理解Javascript内存分配原理

    ### 理解JavaScript内存分配原理 #### 一、引言 在JavaScript编程中,内存管理是一个非常重要的概念。理解JavaScript如何处理内存分配对于优化代码性能、避免内存泄漏等问题至关重要。本文将详细介绍JavaScript中的...

    有关js的变量作用域和this指针的讨论

    在JavaScript编程语言中,变量作用域和`this`指针是理解代码逻辑和正确执行上下文的关键概念。本文将深入探讨这两个主题。 首先,我们来详细解析变量作用域。在ECMAScript规范中,变量作用域决定了变量在哪里可以被...

    this的用法以及改变this指向

    ### this的用法以及改变this指向 #### 为什么学习this? 在JavaScript中,`this`关键字...通过理解这些绑定规则及其如何影响`this`的指向,我们可以更有效地编写JavaScript代码,并减少因`this`指向问题引起的错误。

Global site tag (gtag.js) - Google Analytics