zoukankan      html  css  js  c++  java
  • this

    this:执行上下文,this一般存在于函数中,表示当前函数的执行上下文,如果函数没有执行,那么this没有内容,只有函数在执行后this才有绑定

    1.默认执行:fn(): 全局作用域或者普通函数中this指向window,严格模式指向undefined

    例子:  function fn(){

          "use strict"
          console.log(this)
          }
          fn()

    2.通过对象执行(通过上下文对象执行,隐式执行)

    function fn(){
    console.log(this)
    }
    var a = 10;
    var obj = {
    a:20,
    b:fn
    }
    obj.b();

    var obj2 = {
    a:30,
    b:obj.b
    }

    3.显式执行(通过函数的方法bind执行):指定的是谁,就是谁
    function fn(){
    console.log(this)
    }
    var f = fn.bind(123);
    f();

     找回隐式丢失的this,其实就是使用显式执行,强行绑定
    setTimeout(obj.b.bind(obj), 3000);

     谁执行了this所在的函数,this就是谁

     场景:
     1.默认执行:非严格模式下指向window
      window || undefined
     2.隐式执行:通过任意对象执行
       直接的执行对象
     3.显式执行:通过函数的bind或call或apply执行
       写谁就谁

    function fn(){
    console.log(this)
    }
    var obj = {}
    obj.fn = fn;

    obj.fn();         //obj

    var obtn = document.getElementById("btn");
    obtn.onclick = fn;
         点击时          //obtn

    fn.bind("hello")();       //"hello"

    var f = fn.bind(obj);
    f();        //obj

    fn();              //window


    4.构造函数执行(通过new执行)   



     

  • 相关阅读:
    JavaScript数组操作
    cxf-rs 和 swagger 的点
    cxf-rs 、spring 和 swagger 环境配置切换【github 有项目】
    (二)swagger-springmvc
    (二)spring-mvc-showcase 和 swagger-springmvc 的恩恩怨怨
    svn 创建tag
    swagger 入门
    jax-rs
    swagger core 和 swagger ui 如何关联【窥探】
    配置 struts2 时掉进 web.xml 的坑
  • 原文地址:https://www.cnblogs.com/wss521/p/11439163.html
Copyright © 2011-2022 走看看