执迷 执迷
首页
  • 技术分享

    • 小白都能看懂的闭包
    • GO-GMP模型
    • MySQL调优
    • centos7部署nacos
    • elasticserch
    • redis
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • JavaScript
  • ES6
  • CSS
  • 框架
  • Node
  • 服务
  • 其他
自我介绍
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

执迷

代码也是艺术
首页
  • 技术分享

    • 小白都能看懂的闭包
    • GO-GMP模型
    • MySQL调优
    • centos7部署nacos
    • elasticserch
    • redis
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • JavaScript
  • ES6
  • CSS
  • 框架
  • Node
  • 服务
  • 其他
自我介绍
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • JavaScript

    • JavaScript
    • 虚拟DOM
    • DOM和事件
    • ES6
    • 数组操作
    • JavaScript的深浅拷贝
    • JavaScript的执行
    • JavaScript对象
    • JavaScript类型
    • JS概念
    • js设计模式
    • js深入浅出
    • Promise
    • this的指向
    • typescript
  • ES6

  • CSS

  • 框架

  • Node

  • 服务

  • 其他

  • 设计模式

  • web3

  • react

  • 学习笔记
  • JavaScript
执迷
2022-05-15

this的指向

普通函数 调用函数时使用的引用,决定了函数执行时刻的 this 值。

class C { showThis() { console.log(this); }}
var o = new C();var showThis = o.showThis;
showThis();// undefined
o.showThis(); // o
1
2
3
4

按照我们上面的方法,不难验证出:生成器函数、异步生成器函数和异步普通函数跟普通函数行为是一致的,异步箭头函数与箭头函数行为是一致的。

lexical:表示从上下文中找 this,这对应了箭头函数。 global:表示当 this 为 undefined 时,取全局对象,对应了普通函数。 strict:当严格模式时使用,this 严格按照调用时传入的值,可能为 null 或者 undefined。

我们可以用 strict 达成与上一节中方法的例子一样的效果:


"use strict"
function showThis(){
    console.log(this);
}

var o = {
    showThis: showThis
}

showThis(); // undefined
o.showThis(); // o
1
2
3
4
5
6
7
8
9
10
11
12
#JavaScript#this
上次更新: 2024/07/21, 21:46:04
Promise
typescript

← Promise typescript→

最近更新
01
MySQL调优 原创
08-04
02
MySQL底层 原创
07-30
03
consul单台机器部署,注册外网服务健康检查 原创
07-30
更多文章>
Theme by Vdoing | Copyright © 2019-2024 执迷 | 闽ICP备2022018045号 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式