zoukankan      html  css  js  c++  java
  • 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)// 当函数赋值给对象的属性,我们称为"方法"
    
  • 相关阅读:
    python mysqldb 模块学习
    接口自动化学习笔记
    unittest 单元测试框架断言方法
    Python+Django+Bootstrap 框架环境搭建
    Django CSRF cookie not set.错误
    django安装与卸载
    jmeter+ant+jenkins接口自动环境搭建
    jmeter 非GUI模式下测试报错An error occurred: Unknown arg:
    非 GUI 模式运行 JMeter 压力测试
    Android SDK开发包国内下载地址
  • 原文地址:https://www.cnblogs.com/aoximin/p/12372186.html
Copyright © 2011-2022 走看看