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
相关推荐
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
js原生态函数中使用jQuery中的$(this)无效的解决方法 在JavaScript开发中,使用jQuery的$(this)在原生态函数中可能会出现无效的问题,本文将对此进行详细的分析和解决方法的介绍。 一、问题描述 在JavaScript开发...
下面我们将深入探讨`this`的使用方法。 1. **全局作用域与浏览器环境**: 在浏览器环境中,如果`this`在全局作用域中被引用,它通常会指向`window`对象。在Node.js环境下,`this`则默认指向`global`对象。 2. **...
2. **函数没有所属对象(全局环境)**:在非严格模式下,如果函数不在任何对象作用域内被调用,`this` 指向全局对象(在浏览器中是 `window`,在 Node.js 环境中是 `global`)。例如: ```javascript function foo...
在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...
在JavaScript中,`this`关键字是一个至关重要的概念,它在不同上下文中有着不同的指向。`this`在JavaScript中并不像其他静态类型语言(如Java或C++)中的指针那样工作,而是根据函数调用的方式动态确定其值。以下是...
- **全局或函数外部**:在全局作用域中,`this`指向`window`对象(在浏览器环境中)或全局对象(在Node.js中)。 - **对象方法**:当函数作为对象的一个方法被调用时,`this`指向调用该方法的对象。 - **构造函数...
JavaScript中的`this`关键字是编程过程中经常会遇到的一个关键概念,尤其在面向对象编程中起着至关重要的作用。`this`的值取决于它被调用时的上下文,而不是定义时的位置,这使得它有时会显得有些复杂。在这个深入...
因此,this.x的输出可能是100(如果在严格模式下或在Node.js环境中,this保持为obj),也可能是undefined(在浏览器环境中,this可能变为window对象)。 另外,箭头函数改变了this的绑定方式。在ES6中,箭头函数...
### 详解Javascript中的`this`指针 在深入探讨`this`指针之前,我们首先应当明确`this`在JavaScript中的基本概念与作用。`this`关键字在JavaScript中扮演了一个非常核心的角色,它是一个特殊的变量,用于引用调用...
JavaScript中的`this`关键字是程序设计中的一个核心概念,它在不同上下文环境中有着不同的指向,这使得理解和掌握`this`的用法至关重要。在JavaScript中,`this`的值取决于函数调用的方式,而不是定义的方式,这为...
在不同的场景下,`this`的指向会发生变化,这使得它成为JavaScript中理解和使用的一个关键点。 一、基础理解 1. 全局函数中的`this` 如`doSomething`函数所示,如果一个函数作为全局函数定义,`this`默认指向全局...
JavaScript中的`this`关键字是一个非常重要的概念,它与许多其他编程语言中的行为不同,因此常常让开发者感到困惑。本文将详细解析`this`在JavaScript中的工作原理及其绑定规则。 1. `this`并不总是指向函数自身 ...
在全局作用域中使用 `this` 会返回全局对象。对于浏览器环境而言,全局对象是 `window`;而在 Node.js 环境下,则是 `global`。例如: ```javascript console.log(this === window); // true ``` 在上面的例子中,...
JavaScript中的`this`...在实际开发中,尤其需要注意函数调用方式以及如何在事件处理、对象方法和构造函数中正确使用`this`。通过深入学习和实践,开发者可以更好地控制代码的执行环境,提升代码的可读性和可维护性。
这意味着如果在全局作用域中声明一个变量,并且在函数中使用this来引用这个变量,它实际上引用的是window对象上的属性。例如,调用一个没有明确调用者的函数,其内部的this默认指向window对象。 2. 指向当前对象的...
JavaScript中的`this`绑定是一个关键概念,涉及到函数调用、对象方法、构造函数等多个场景。`this`在JavaScript中并不像其他语言中的`this`那样简单地指向对象本身,而是根据函数调用的方式动态确定其指向。理解`...
在JavaScript中,`this`关键字是一个非常重要的概念,但同时也是新手开发者经常遇到...在编写涉及`this`的代码时,需谨慎处理内部函数中的`this`,可能需要使用闭包、bind、call、apply等方法来确保`this`的正确指向。