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

js中的this使用方法

阅读更多

 js中的this使用方法

 

this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。

1、纯粹函数调用。

function test() {
    this.x = 1;
    alert(x);
}
test();

 

其实这里的this就是全局变量。看下面的例子就能很好的理解其实this就是全局对象Global。

 

var x = 1;
function test() {
    alert(this.x);
}
test();//1

var x = 1;
function test() {
    this.x = 0;
}
test();
alert(x);//0

 

 

2、作为方法调用,那么this就是指这个上级对象。

 

function test() {
    alert(this.x);
}

var o = {};
o.x = 1;
o.m = test;
o.m(); //1

 

 

3、作为构造函数调用。所谓构造函数,就是生成一个新的对象。这时,这个this就是指这个对象。

function test() {
    this.x = 1;
}
var o = new test();
alert(o.x);//1

 

4、apply调用

this指向的是apply中的第一个参数。

 

var x = 0;
function test() {
    alert(this.x);
}

var o = {};
o.x = 1;
o.m = test;
o.m.apply(); //0
o.m.apply(o);//1

 

当apply没有参数时,表示为全局对象。所以值为0。

以上转自:http://www.cnblogs.com/RitaRichard/archive/2011/10/14/2212161.html

 

在学习js闭包的时候看到一个思考题。

var name = "The Window";   
  var object = {   
    name : "My Object",   
    getNameFunc : function(){   
      return function(){   
        return this.name;   
     };   
    }   
};   
alert(object.getNameFunc()());  //The Window
//刚开始不太明白,但是将最后一句改为如下代码就很好明白了。
var re_fun = object.getNameFunc();
alert(re_fun());

 

其中re_fun是返回的一个函数对象,但该对象是全局对象,所以在调用该方法时,里面的this代表的应该是全局变量的name。其实和下面的代码是一个效果:

var x = 1;
function test() {
    alert(this.x);
}
test();//1

 

 

 

 

分享到:
评论
2 楼 slbszq 2014-07-04  
是的?你是?
1 楼 buyunxuan 2014-06-30  
哥们,东西写的挺好的啊。你现在还在郑州工作吗

相关推荐

    JavaScript中this关键字使用方法详解

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

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

    js原生态函数中使用jQuery中的$(this)无效的解决方法 在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发...

    JavaScript this使用方法图解

    下面我们将深入探讨`this`的使用方法。 1. **全局作用域与浏览器环境**: 在浏览器环境中,如果`this`在全局作用域中被引用,它通常会指向`window`对象。在Node.js环境下,`this`则默认指向`global`对象。 2. **...

    js中的this

    2. **函数没有所属对象(全局环境)**:在非严格模式下,如果函数不在任何对象作用域内被调用,`this` 指向全局对象(在浏览器中是 `window`,在 Node.js 环境中是 `global`)。例如: ```javascript function foo...

    Javascript类的继承,使用this.callParent调用超类方法

    在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...

    高手详解javascript中的this指针

    在JavaScript中,`this`关键字是一个至关重要的概念,它在不同上下文中有着不同的指向。`this`在JavaScript中并不像其他静态类型语言(如Java或C++)中的指针那样工作,而是根据函数调用的方式动态确定其值。以下是...

    JavaScript中this的使用

    - **全局或函数外部**:在全局作用域中,`this`指向`window`对象(在浏览器环境中)或全局对象(在Node.js中)。 - **对象方法**:当函数作为对象的一个方法被调用时,`this`指向调用该方法的对象。 - **构造函数...

    深入理解JavaScript中的this关键字

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

    JS中的this变量的使用介绍

    因此,this.x的输出可能是100(如果在严格模式下或在Node.js环境中,this保持为obj),也可能是undefined(在浏览器环境中,this可能变为window对象)。 另外,箭头函数改变了this的绑定方式。在ES6中,箭头函数...

    详解Javascript 中的this指针

    ### 详解Javascript中的`this`指针 在深入探讨`this`指针之前,我们首先应当明确`this`在JavaScript中的基本概念与作用。`this`关键字在JavaScript中扮演了一个非常核心的角色,它是一个特殊的变量,用于引用调用...

    JavaScript程序设计javascript中this

    JavaScript中的`this`关键字是程序设计中的一个核心概念,它在不同上下文环境中有着不同的指向,这使得理解和掌握`this`的用法至关重要。在JavaScript中,`this`的值取决于函数调用的方式,而不是定义的方式,这为...

    如何使用Javascript中的this关键字

    在不同的场景下,`this`的指向会发生变化,这使得它成为JavaScript中理解和使用的一个关键点。 一、基础理解 1. 全局函数中的`this` 如`doSomething`函数所示,如果一个函数作为全局函数定义,`this`默认指向全局...

    Javascript中神奇的this

    JavaScript中的`this`关键字是一个非常重要的概念,它与许多其他编程语言中的行为不同,因此常常让开发者感到困惑。本文将详细解析`this`在JavaScript中的工作原理及其绑定规则。 1. `this`并不总是指向函数自身 ...

    javascript 中 this 的用法.docx

    在全局作用域中使用 `this` 会返回全局对象。对于浏览器环境而言,全局对象是 `window`;而在 Node.js 环境下,则是 `global`。例如: ```javascript console.log(this === window); // true ``` 在上面的例子中,...

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

    JavaScript中的`this`...在实际开发中,尤其需要注意函数调用方式以及如何在事件处理、对象方法和构造函数中正确使用`this`。通过深入学习和实践,开发者可以更好地控制代码的执行环境,提升代码的可读性和可维护性。

    JavaScript中this指向.pdf

    这意味着如果在全局作用域中声明一个变量,并且在函数中使用this来引用这个变量,它实际上引用的是window对象上的属性。例如,调用一个没有明确调用者的函数,其内部的this默认指向window对象。 2. 指向当前对象的...

    详细讲解JavaScript中的this绑定

    JavaScript中的`this`绑定是一个关键概念,涉及到函数调用、对象方法、构造函数等多个场景。`this`在JavaScript中并不像其他语言中的`this`那样简单地指向对象本身,而是根据函数调用的方式动态确定其指向。理解`...

    分析JS中this引发的bug

    在JavaScript中,`this`关键字是一个非常重要的概念,但同时也是新手开发者经常遇到...在编写涉及`this`的代码时,需谨慎处理内部函数中的`this`,可能需要使用闭包、bind、call、apply等方法来确保`this`的正确指向。

Global site tag (gtag.js) - Google Analytics