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



     

  • 相关阅读:
    百度之星2019 初赛一 题解
    [NOI2019]弹跳(KD-Tree/四分树/线段树套平衡树 优化建图+Dijkstra)
    [BZOJ2157]旅游(树链剖分/LCT)
    [BZOJ3230]相似子串(后缀数组)
    回文树/回文自动机(PAM)学习笔记
    [CF30E]Tricky and Clever Password(KMP+manacher)
    APIO2019题解
    代码大全
    算法竞赛常用资料整理
    手动修复 Flash CS3 简中化不完全问题
  • 原文地址:https://www.cnblogs.com/wss521/p/11439163.html
Copyright © 2011-2022 走看看