JavaScript中this关键字的指向问题

1、纯粹的函数调用,this就代表全局对象Global

var x = 1;
function test(){
    var x = ‘二哈‘;
    console.log(this.x);    //1
}
test();

2、作为对象的成员方法时,this代表这个对象

var x = ‘二哈‘;function test(){
    console.log(this.x);    //1
}
var obj = {
    x: 1,
    fn: test
}
obj.fn();

3、作为构造函数调用,this代表new关键字生成的新对象

var x = ‘二哈‘;function test(){  this.x = 1;
}
var obj = new test();
console.log(obj.x)    //1

4、使用call()方法或者apply()时,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数,参数为空时,默认调用全局对象

var x = 1;
function test(){
  console.log(this.x);
}
var obj = {
    x: ‘二哈‘,
    fn: test
};
obj.fn.apply();    //1       
时间: 2024-11-05 16:04:25

JavaScript中this关键字的指向问题的相关文章

JavaScript中this关键字的使用比较

JavaScript中this关键字的使用比较 this关键字在JavaScript中,用的不能说比较多,而是非常多.那么熟悉this关键字的各种用法则显得非常关键. this有时候就是我们经常说的上下文,这个东西的指代对象.它灵活多变,有时候你看它是对象,有时候是window宿主对象. 1.this指向宿主对象 function myWindow() { this.id = 1; // 等价于window.id = 1 console.log(this); // 这里的this就是window

深入解析Javascript中this关键字的使用

深入解析Javascript中面向对象编程中的this关键字 在Javascript中this关键字代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如: function TestFunction(){ this.demoVal='This is a demo variable'; }; 随着函数使用的场合不同,this的值会发生改变.但是有一个总的原则:this指的是调用函数的那个对象. 接下来分情况讨论this关键字的使用: 1. 纯粹的函数调用(这是函数的通常用法,属于全局性

Javascript中的关键字和保留字

ECMA-262中描述了一组具有特定用途的关键字,可用于表示控制语句的开始或结束,或者用于执行特定操作等.规定:关键字属于语言保留,不可以用于标示符. ECMAScript的全部关键字(*为第五版新增): break do instanceof typeof case else new var catch finally return void continue for switch while debugger*   function this with default if throw de

Javascript中this关键字详解

原文出处:http://www.cnblogs.com/justany/archive/2012/11/01/the_keyword_this_in_javascript.html Quiz 请看下面的代码,最后alert出来的是什么呢? 1 var name = "Bob"; 2 var nameObj ={ 3 name : "Tom", 4 showName : function(){ 5 alert(this.name); 6 }, 7 waitShowNa

JavaScript中this关键字的理解

this是个什么鬼? this是JavaScript中的一个关键字,代表当前对象. this在那些情况下会指向谁?如下文. 一.调用全局变量(Global Variable) var x="我是全局变量呦"; function obj() { alert(this.x); } obj(); //我是全局变量呦 此时,this指向了全局变量x. 二.将this作为对象的方法来调用. function test() { alert(this.x); } var obj={}; obj.x=

JavaScript中的this的指向

this是JS的关键字,随着函数使用场合的不同,this值会发生变化.但总的原则是,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(){ th

javascript中this关键字之我见

javascript中的this关键字是个很令人头疼的问题,学习的时候也是个难点,觉得这个东西很玄乎,很乱: 下面是我个人的一点观点: 首先我们来看看直接定义的全局函数: function introduce() {      alert("Hello, I am limeng"); } 这个函数的this指向谁呢? 定义在全局的函数,其实也就是window对象的一个方法,函数的所有者就是当前页面,也就是window对象,我们alert一下看看: var name = "He

关于javascript中this 飘忽不定的指向的问题

this指向问题绝对可以排js 的top 5最难和最重点的问题,初学者常常搞不清楚this指向哪里,特别是学过java和c#的人,想当年俺也迷糊了好久,直到遇到蝴蝶书,主要是因为js和主流的面向对象语言java,c#都不同(相似的问题还有new 操作符的问题, 关于new 构构器函数的原理,参见这篇文章: http://www.cnblogs.com/windyfancy/p/5167266.html ),this并不指向当前对象,这是理解this的关键所在,this的指向取决于你是采用何种方式

JavaScript中var关键字的使用详解

作用 声明作用:如声明个变量. 语法 ? 1 var c = 1; 省略var 在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的. ? 1 2 3 4 5 6 7 8 <script type="text/javascript">   function Define() {     a = 2;   }   function Hello() {     alert(a);   } </script>