当前位置: 首页 > news >正文

javascript this

js中的this有四种执行情况

  • 作为构造函数执行
function Constructer (name) {this.name = name;
}
const construct = new Constructer('测试');
console.log(construct.name);
//思考一下new的过程中发生了什么?
  • 作为对象函数执行
const obj = {name: '测试',logs: function () {console.log(this.name) // 测试}
}
obj.logs();
  • 作为普通函数执行
function normalFunc (name, age) {console.log(this) // Windowalert(name + age)
}
normalFunc();
  • 使用call、apply、bind执行
    这里我们使用这三个方法执行normalFunc方法,三者都能改变this指向

call(this, arg1, arg2,…),这是我们实际开发中最常用的方法

normalFunc.call({ x: 100 }, 'zhangsan', 20);
//弹出 zhangsan20 打印 { x: 100 }

apply(this, args[]),用来处理数组比较多,第二个参数入参为数组

normalFunc.apply({ x: 100 }, ['zhangsan', 20])
//弹出 zhangsan20 打印 { x: 100 }

bind(this),bind不会直接执行当前的函数,而是返回一个可执行函数

const bindFunc = normalFunc.bind({ x: 100 });
bindFunc('zhangsan', 20);
//弹出 zhangsan20 打印 { x: 100 }

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • windows10开启防火墙,增加入站规则后不生效,还是不能访问后端程序
  • 视觉/AIGC面经->多模态
  • Open3D点云算法与点云深度学习案例汇总(长期更新)
  • 相机-雷达联合标定direct_visual_lidar_calibration开源算法编译踩坑记录
  • Memcached内存碎片清理术:优化缓存性能的策略
  • 分享WPF的UI开源库
  • 【Unity】RPG2D龙城纷争(十一)战斗系统之回合制驱动
  • 数据(图像)增广
  • 在 Objective-C 中,如何有效地处理内存管理以避免内存泄漏?
  • Hi3861 OpenHarmony嵌入式应用入门--HTTPD
  • 从0到1搭建数据中台(3):flinkcdc实现数据从mysql到doris
  • 【Python】Gunicorn vs Uvicorn:如何选择适合你的 Python WSGI/ASGI 服务器
  • Kylin系列(九)与 Hadoop 集成:Kylin 如何在 Hadoop 生态中运作
  • skywalking-2-客户端-php的安装与使用
  • Chromium CI/CD 之Jenkins实用指南2024-如何创建新节点(三)
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 08.Android之View事件问题
  • Codepen 每日精选(2018-3-25)
  • Docker 笔记(2):Dockerfile
  • Python中eval与exec的使用及区别
  • spring boot下thymeleaf全局静态变量配置
  • zookeeper系列(七)实战分布式命名服务
  • 安卓应用性能调试和优化经验分享
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从输入URL到页面加载发生了什么
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 为视图添加丝滑的水波纹
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #1014 : Trie树
  • #define与typedef区别
  • #图像处理
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)JAVA使用POI操作excel
  • (二)WCF的Binding模型
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (接口封装)
  • (六)vue-router+UI组件库
  • (七)glDrawArry绘制
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (新)网络工程师考点串讲与真题详解
  • (原创)可支持最大高度的NestedScrollView
  • .“空心村”成因分析及解决对策122344
  • .ai域名是什么后缀?
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Net 高效开发之不可错过的实用工具
  • .net 生成二级域名
  • .Net 执行Linux下多行shell命令方法
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)