js一百零一夜之第七夜-javaScript this 的用法

来源:互联网 发布:怎么看出论文数据造假 编辑:程序博客网 时间:2024/05/17 08:52
this ,是javaScript 中的关键字,他代表在函数运行时,在内部产生的一个对象,只能在函数内部使用
函数总是变化的,所以this也总是变化的,但是有一点,this指的是,调用函数的那个对象
 
1.纯粹的函数调用
function test(){
    this.x=1;
}
此处的this 是window 对象,那么如何来验证呢
test();
alert(x); 或者alert(window.x);  输出的都是  1 
 
还有一种
var  x =3;
function test(){
  alert(this.x);
}
test();
输出: 3   证明是this 是window 对象
 
再变化一下
var x=2;
function test(){
    this.x=5;
}
test();
alert(x);
输出:   5   证明是this 是window 对象
 当不用new 的时候,this,指向window
 
2.函数作为对象方法调用,与作为对象的方法调用 是一一样的
 
function test(){
     alert(this); //[object Object]
      alert(this.x);
      }
      var o={};
      o.x=0;
      //o.m=test();// 这是一个赋值语句,如果将test() 赋值给o.m 由于test()并没有返回值,所有我们看不到o.m 的值,如果test 函数体里面写的是 return "aaaa";
      //则o.m 的值为aaa
      o.m=test;// 将函数体赋值给m变量
 
      o.m();// 将函数作为对象的方法调用 this 改变 弹出0 
 
3.作为构造函数调用
  所谓构造函数,就是通过构造函数生成一个新对象
 function test(){
  this.x=1;
}
var t=new test();
alert(t.x);  //1
那么怎么确定 this 是哪个对象呢,下面做如下的验证
 
var x=1212;
   function test(){
  this.x=1;
}
var t=new test();
alert(t.x);//  1
题记:在javaScript 中new 关键字的作用是什么呢?
是在创建一个新的对象的时候,才使用关键字new ,new test() 他是一种创建对象的语法,不必深究为什么要这样写。
 
4.apply()调用
apply() 是函数对象的一个方法 ,作用是改变函数的调用对象,他的第一个参数就是改变后的调用这个函数的对象
因此this 指向的就是这个改变调用函数后的对象,如果参数为空,则默认表示的是window 全局 对象
 
var x=12;
     function test(){
         alert(this.x);
         }
    var o={};
    o.x=1;
    o.m=test;
    o.m.apply(); //12
 
在改一下,传入参数:
     var x=12;
     function test(){
         alert(this.x);
         }
    var o={};
    o.x=1;
    o.m=test;
    o.m.apply(o); //1  将this 转交给o  弹出1
 
到此this 的使用方法介绍完毕,自己也明白了,this 的用法,以后如果遇到新的this 用法会增加到此文档中,敬请关注,文档说明参考网上http://www.ruanyifeng.com/blog/2010/04/using_this_keyword_in_javascript.html
作者所写。
 
总结:本次文档总共介绍了4种this 的用法,
1.this 作为全局对象
2.this 作为函数对象
3.this 作为构造函数的新对象
4.this  使用apply()作为被传递进来的对象,如果没有参数,则this 为全局对象
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手破了红肿了怎么办呢 老师反应孩子在校粗心胆小怎么办 四年级的学生计算粗心怎么办 老打孩子骂孩子怎么办 站久了脚肿了怎么办 孩子初中了书写越来越潦草怎么办 给孩子自由孩子无法无天怎么办 孩子挑食幼儿园老师该怎么办 老师说孩子挑食家长怎么办 工作中老是粗心不细心怎么办 小孩数学总是特别粗心该怎么办 孩子起范疙瘩的怎么办 做题马虎不认真怎么办 孩子考差了家长怎么办 小孩写作业不认真怎么办 小孩不认真检查作业怎么办 一年级的小孩作业不认真怎么办 一年级学生做题粗心怎么办 一年级的学生做题粗心怎么办 孩子做作业注意力不集中怎么办 小学三年孩子抄答案怎么办 孩子写作业不认真审题怎么办 一年级小孩审题不认真怎么办 孩子审题不认真马虎怎么办 孩子做作业不认真审题怎么办? 考老师考砸了怎么办 重要考试考砸了怎么办 二年级孩子做数学题粗心怎么办 二年级孩子考试粗心怎么办 二年级孩子考试总是粗心怎么办 二年级孩子总是粗心怎么办 小学一年级孩子抄别人作业怎么办 被老师发现抄答案怎么办 考试抄答案被老师发现怎么办 孩子撒谎不写作业怎么办 小学生做题容易马虎出错怎么办 小学生做题老是马虎怎么办 小学生做题马虎不认真怎么办 会做的题总做错怎么办 孩子数学做题粗心怎么办 孩子成绩考差了怎么办