zoukankan      html  css  js  c++  java
  • 函数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默认绑定全局对象;

     

           
  • 相关阅读:
    1015. 德才论
    1014. 福尔摩斯的约会
    1013. 数素数
    1012. 数字分类
    1011. A+B和C
    1010. 一元多项式求导
    1009. 说反话
    1008. 数组元素循环右移问题
    1007. 素数对猜想
    1006. 换个格式输出整数
  • 原文地址:https://www.cnblogs.com/lyc10/p/11956968.html
Copyright © 2011-2022 走看看