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执行)   



     

  • 相关阅读:
    cpu降频问题
    配置 logrotate 指导
    Ubuntu 和 Ros 对应版本关系
    Git 文件管理
    Win10(UEFI启动) 安装Ubuntu16.04双系统
    Clion ROS开发环境设置
    clion 创建快捷方式和配置ros开发环境
    Ubuntu 16.04安装 CastXML
    eigen3 版本信息查看
    ubunutu eigen3包的查找
  • 原文地址:https://www.cnblogs.com/wss521/p/11439163.html
Copyright © 2011-2022 走看看