• js this是什么?[多次书写]


    前言

    以前的时候,我写了一个关于js this的博客,写的非常复杂,分析了各种情况。
    现在我想简化。
    如果你有后台基础,专门去理解过this,那么请忘记。
    这东西是有口诀的:

    在方法中,this 表示该方法所属的对象。
    如果单独使用,this 表示全局对象。
    在函数中,this 表示全局对象。
    在函数中,在严格模式下,this 是未定义的(undefined)。
    在事件中,this 表示接收事件的元素。
    类似 call() 和 apply() 方法可以将 this 引用到任何对象。
    

    看题

    该题来自阮一峰的博客。

      var name = "The Window";
      var object = {
        name : "My Object",
        getNameFunc : function(){
          return function(){
            return this.name;
          };
        }
      };
      alert(object.getNameFunc()());
    

    这个this.name 的this是什么?
    答案是:"The Window"
    看公式:

    在函数中,this 表示全局对象。
    

    在这里this.name 是在匿名函数中,那么this就是全局对象。
    在没有call() 和 apply()可以直接这么理解。
    如果存在call和apply,那么需要根据步骤考虑。
    这里难以理解的是什么是函数,什么是方法?
    权威指南解释:

      函数(function): 函数是带有名称(named)和参数的JavaScript代码段,可以一次定义多次调用。
    
      方法(method): 当将函数和对象合写在一起时,函数就变成了 "方法"(method)// 当函数赋值给对象的属性,我们称为"方法"
    
  • 相关阅读:
    原生小程序 自定义封装组件
    H5 es6 foreach使用
    原生小程序底部弹出层动画过渡
    vue 动画滑动
    H5 textarea高度自适应
    关于Java日期加减,并且比较大小的方法
    activiti多实例如何配置
    常用类——Date——Calendar
    常用类-String
    Wrapper-装箱和拆箱
  • 原文地址:https://www.cnblogs.com/aoximin/p/12372186.html
Copyright © 2020-2023  润新知