zoukankan      html  css  js  c++  java
  • how THIS work in javascript

    this指向执行上下文时,总体有三种情况;

    1.初始化全局上下文——指向window

    2.进入eval模式

      1)直接调用eval(),

        this指向的执行上下文不会改变,指向当前执行环节

        var obj = {

          data:'aoao',

        seedata:function() {

          eval('console.log(this.data)');

        }

      };

      obj.seedata();

      2)间接调用eval()

        this永远指向window

        var obj = {

        data:'aoao',

        seedata:function() {

          var ideal = eval;

          ideal('console.log(this.data)');  

        }

      }

      obj.seedata();

    3.function模式

      一般有4种情况:

      1)function ivocation pattern

        直接调用函数foo();

        此时可以把函数理解为window下的方法,this指向window;

      2)method intvocation pattern

        作为某一对象的方法调用函数

        出现的特征是带有"."或者"[]"的符号

        this指向这类符号前面的对象。例如foo.seedata();this指向foo;

      3)constructor pattern

        构造函数模式

        this指向new构造器返回的对象;例如:var obj = new foo(arg);this指向obj;

      4)apply pattern

      使用了内置函数call和apply,形式foo.call(thisobject)或foo.apply(thisobject);

      如果内置函数中的参数为null或者undifined,则this指向global,在浏览器内就是window对象;

    行为影响状态,状态影响视图
  • 相关阅读:
    如何监控IT正常运行时间?
    系统扩展正在取代macOS内核扩展,这会对您有何影响?
    IT管理员需要的10大网络工具
    自动化管理员工生命周期,集成Ultipro
    OpManager MSP:ManageEngine的新型MSP重点网络监控解决方案
    vue中axios的使用
    vue中axios的介绍
    移动端适配--关于根元素font-size和rem
    JavaScript---数组去重
    array数组的方法
  • 原文地址:https://www.cnblogs.com/foxNike/p/5598156.html
Copyright © 2011-2022 走看看