码迷,mamicode.com
首页 > 其他好文 > 详细

函数this指向哪个对象?

时间:2019-11-29 13:18:17      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:func   情况   模式   define   参数   调用   def   绑定   style   

函数的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指向哪个对象?

标签:func   情况   模式   define   参数   调用   def   绑定   style   

原文地址:https://www.cnblogs.com/lyc10/p/11956968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!