event、this、 that 和 window

  • event 代表当前触发的事件对象。它是一个 JavaScript原生对象,包含有关事件的信息,例如事件类型、目标元素、鼠标位置等。通过访问event 对象,可以获取和修改这些信息,例如:
function handleClick(event) {
  console.log('Event type:', event.type);
  console.log('Target element:', event.target);
  console.log('Mouse position:', event.clientX, event.clientY);
}

  • this 代表当前执行上下文中的当前对象。在不同的执行上下文中,this 可以指向不同的对象。例如,当你在对象方法中使用this 时,它将指向该对象,例如:
var person = {
  name: 'Alice',
  sayHello: function() {
    console.log('Hello, my name is', this.name);
  }
};

person.sayHello(); // Hello, my name is Alice

this 是一个在运行时确定的关键字,它通常指向当前执行上下文中的当前对象。在不同的执行上下文中,this 可以指向不同的对象。

  • that 通常用作一个变量名,它是在函数作用域中保存 this 引用的一个常用技巧。这是因为在 JavaScript 中,this 的值会根据执行上下文的不同而改变,可能会导致一些意想不到的错误。通过使用 that 可以解决这个问题,例如:
var person = {
  name: 'Alice',
  sayHello: function() {
    var that = this;
    setTimeout(function() {
      console.log('Hello, my name is', that.name);
    }, 1000);
  }
};

person.sayHello(); // Hello, my name is Alice

由于setTimeout() 方法会创建一个新的执行上下文,如果不使用 that 来保存this,在内部函数中,this 的值将不再是对象person,而是全局对象或undefined,导致错误的结果。通过使用 that,可以在内部函数中访问 person 对象,并正确地打印出 "Hello, my name is Alice"。

  • window 是浏览器中的全局对象,它包含了浏览器中所有的全局属性和方法。在浏览器中,所有的 JavaScript 代码都运行在一个全局的上下文中,该上下文中的 this 默认指向window 对象。例如:
console.log(this === window); // true

它们都指向同一个对象,所以这个比较表达式的结果是 true

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,635评论 0 5
  • 1. undefined 和 null 有什么区别? 相似之处: 它们属于 JavaScript 的 7 种基本类...
    耶啵_阅读 287评论 0 0
  • 1.数据类型 1.1概念篇 7种原始数据类型 引用类型 null是对象吗?为什么? 结论: null不是对象 解释...
    859z阅读 392评论 0 0
  • javaScript 基础巩固之闭包来实例化对象 在 JavaScript 中,我们可以很简单的创建两个完全独立的...
    人话博客阅读 312评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,642评论 1 45