函数this指向哪个对象?

Posted 就是10

tags:

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

函数的this指向是根据函数调用时所处的执行环境来确定的。

this指向对象的情况有四种:

1.使用new关键字时:this会绑定构造函数所创建的对象。

function Foo(){
    this.a = 1;  
}

var bar = new Foo();  //此时this绑定为Foo构造函数所创建的对象。

  

2.使用 call, apply, bind方法调用:this 会绑定 call, apply 的第一个参数的引用对象。

function foo(){
  console.log(this.name);  
}

var a = {name : "i‘m apply!"};
var b = {name : "i‘m bind!"};
var c = {name : "i‘m call!"};

foo.apply(a);   //此时this 绑定在a对象;
foo.bind(b);    //此时this 绑定在b对象;
foo.call(c);    //此时this 绑定在c对象;

  

3.在某个上下文的对象中被调用:this绑定所处上下文对象。

4.默认绑定:this 在 “严格模式下为”:undefined, “非严格模式下”绑定全局对象。

function foo(){
  console.log(this.name);  
}

var f = {
  name: "i‘m foo!",
  foo: foo  
}

f.foo() // 此时this绑定在foo对象;

var name = "window";
foo() //此时this默认绑定全局对象;

 

 

 

       

以上是关于函数this指向哪个对象?的主要内容,如果未能解决你的问题,请参考以下文章

this的指向问题

浅谈js的this指向问题

JavaScript语法——this

「思考题」54个JavaScript基础知识总结

Jq this的指向问题

浅谈js中的this指向