js随笔-函数方法中的this

Posted Anne3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js随笔-函数方法中的this相关的知识,希望对你有一定的参考价值。

1.对象的方法形式调用,fun.getAge()的this指向的是对象fun

var fun={
  name:"lihui",
  age:23,
  getAge:function(){
    console.log(fun.age);
}
}
fun.getAge();//23

  

2.当在对象方法中内嵌函数,内嵌函数中的this便指向的是全局对象window,不是对象了

var fun={
  name:"lihui",
  age:23,
  getAge:function(){
    function getAgeFun(){
  console.log(this.age);  
}
  return getAgeFun();
}
}
fun.getAge();//underfined

要想在函数中把this指向对象需要在方法中将this赋值给一个变量,在函数中使用这个变量

var fun={
  name:"xiaoming",
  age:23,
  getAge:function(){
    var that=this;
    function getAgeFun(){
  console.log(that.age);  
}
  return getAgeFun();
}
}
fun.getAge();//23  

之前经常在回调函数中犯这种错误,就经常在success中创建函数,并在函数中直接this.xxx使用对象的参数,就会出错

 

3.在对象方法中调用在外部创建的函数,函数中的this指向的也是window

function getAgeFun(){
  console.log(this.age);  
}
var fun={
  name:"xiaoming",
  age:23,
  getAge:function(){
    getAgeFun();
}
}
fun.getAge();//underfined

4.在将对象方法赋值给其他变量,this值也是指向window

var fun={
  name:"xiaoming",
  age:23,
  getAge:function(){
    console.log(this.age);  
}
}
var fun2=fun.getAge;
fun2();//underfined

  

以上是关于js随笔-函数方法中的this的主要内容,如果未能解决你的问题,请参考以下文章

随笔js

随笔14 java中的关键字

几个关于js数组方法reduce的经典片段

看一遍就能掌握 js 中的 this 指向

JS知识整理随笔数组

学斋随笔,初九潜龙勿用,-07js方法,排序查找