Javascript 中的this指向

Posted 教父123

tags:

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

1、作为对象的方法调用,this值当前对象

   var obj={
         name:"xiao",
          getName(){
this.name //xiao } }
obj.getName();

2、作为普通函数调用  this指向window,  当一个函数体 ,自执行时,里面的this指向window,若想改变this  可以var that = this  

  var obj={
         name:"xiao",
          getName(){

            this.name   //xiao
  }  
}    
var fn = obj.getName

fn();//undefined

 

3、构造函数调用时   指new的对象

function fn(name){
     this.name=name  
     return {
        name:‘bb‘
    }
}

var obj =new fn(‘gg‘)

obj.name//  bb  this指返回的对象

 

还有一种情况如果此时构造函数  显示的返回一个对象的话 那么this指向  返回的对象  而不是new的对象

所以,如果构造函数返回一个非对象类型数据的话,就不会造成上面的问题

4、call ,apply

它们俩都是强制改变this指向,它们都是接受两个参数,第一个则是this,第二个是参数,

apply要求第二个参数是一个集合  数组或者类数组,call则是单个参数,call一般用于参数确定的情况,apply则用于参数不确定的情况

 

以上是关于Javascript 中的this指向的主要内容,如果未能解决你的问题,请参考以下文章

一文搞定JavaScript的this指向问题

javascript 中的this指向

理解 JavaScript 中的 this

JavaScript——总结this指向(更)

Javascript中的this指向。

JavaScript中的this