码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • JavaScript this 关键字


    在JavaScript中,`this`关键字是一个特殊的关键字,它在函数内部使用,用于引用当前执行上下文中的对象。

    `this`的值是在函数调用时动态确定的,它取决于函数的调用方式。下面列举了几种常见的调用方式和`this`的取值:

    1. 全局上下文:当在全局作用域中使用`this`时,它将引用全局对象(浏览器中为`window`对象,Node.js环境中为`global`对象)。

    ```javascript
    console.log(this); // 指向全局对象(window 或 global)
    ```

    2. 函数调用:当函数作为独立函数调用时,`this`将引用全局对象(严格模式下是`undefined`)。

    ```javascript
    function myFunction() {
      console.log(this);
    }

    myFunction(); // 指向全局对象(严格模式下是 undefined)
    ```

    3. 对象方法:当函数作为对象的方法调用时,`this`将引用调用该方法的对象。

    ```javascript
    var obj = {
      name: "John",
      sayHello: function() {
        console.log("Hello, " + this.name);
      }
    };

    obj.sayHello(); // 指向 obj 对象,输出 "Hello, John"
    ```

    4. 构造函数:当使用`new`关键字创建对象实例时,`this`将引用新创建的对象实例。

    ```javascript
    function Person(name) {
      this.name = name;
    }

    var john = new Person("John");
    console.log(john.name); // 输出 "John"
    ```

    5. 显式绑定:使用`call()`、`apply()`或`bind()`方法可以显式地指定函数内部的`this`值。

    ```javascript
    function greet() {
      console.log("Hello, " + this.name);
    }

    var obj = { name: "John" };

    greet.call(obj);  // 使用 call 方法指定 this,输出 "Hello, John"
    ```

    需要注意的是,箭头函数(`=>`)具有词法作用域绑定,它们没有自己的`this`值,而是继承外部作用域的`this`值。

    这是一些关于`this`关键字的基本用法和行为。在实际开发中,理解`this`的指向是非常重要的,因为它对于访问和操作对象的属性和方法具有关键作用。

  • 相关阅读:
    windows2008+iis7+asp+php环境配置
    Tauri | 新版2.0路线图:更强大的插件以及支持 iOS、Android 应用构建
    老测试/开发程序员给年轻程序员的一些建议,小码农搬砖工人......
    【虚拟线程】java21虚拟线程用法 限流等
    【ubuntu中的docker记录】—— 使用docker的常用的指令记录,持续更新中
    【linux】计算机内部体系结构
    Python面向对象总结一
    UE4 将蓝图写在Actor类里面 实现复用
    python r代表什么意思
    【货币单位换算】python实现-附ChatGPT解析
  • 原文地址:https://blog.csdn.net/smarten57/article/details/130899542
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号