js中this问题

JavaScript:this指向问题、同步和异步、 JS执行机制、location对象 this this 的指向在函数定义的时候 是确定不了的 只有函数执行的时候才能确定this指向谁 一般情况下 this 的最终指向的是那个调用它的对象 .全部作用域或者普通作用函数中 this指向全局对象window (定时器里面的 this指向window) 方法调用中 谁调用this指向谁 构造函数this指向构造函数 <body> <button> 按钮</button> <script> // this 指向问题 阅读详情
  1. 默认绑定 // 没人绑定,this => window
  2. 隐式绑定 // 谁调用this指向谁
  3. 显示绑定 // bind call apply
  4. 构造器调用。(构造器里的this指向返回的这个对象)这里可以联系new的原理过程

new过程发生的事情

  1. 创建(或者说构造)一个全新的对象。
  2. 这个新对象会被执行[[ 原型]] 连接。(proto__: Obj.prototype)
  3. 这个新对象会绑定到函数调用的this。
  4. 如果函数没有返回其他对象,那么new 表达式中的函数调用会自动返回这个新对象。

用来指定函数内部的this指向,以下是bind的源码

 Function.prototype.bind = function(){
		var self = this, // 保存原函数
			context = [].shift.call( arguments ), // 需要绑定的this上下文
			args = [].slice.call( arguments ); // 剩余的参数转成数组
			console.log(self)
		return function(){ // 返回一个新的函数
			return self.apply( context, [].concat.call( args, [].slice.call( arguments ) ) );
			// 执行新的函数的时候,会把之前传入的context当作新函数体内的this
			// 并且组合两次分别传入的参数,作为新函数的参数
		}
	};
	var obj = {
		name: 'sven'
	};
	var func = function( a, b, c, d ){
		console.log ( this.name ); // 输出:sven
		console.log ( [ a, b, c, d ] ) // 输出:[ 1, 2, 3, 4 ]
	}.bind( obj, 1, 2 );
	func( 3, 4 );

对this的应用

var a = 123,
		b = 234;
		function text() {
			var a = 111,
				b = 123;
				console.log(this.a)
				console.log(this.b)
		}

		var n = new text() // new操作符相当于函数执行,返回一个对象,this绑定在{}上
		console.log(n.a)
		console.log(n.b)
VS2022 中 std::mutex 静态初始化陷阱:一次诡异崩溃的排查记录 VS2022中使用std::mutex时遇到的静态初始化陷阱问题。该问题源于VS2022 17.4版本为std::mutex添加constexpr支持后,全局静态初始化可能导致系统资源未就绪时锁失效或崩溃。文章分析了问题现象、影响范围,并提供了解决方案。最后给出了排查清单和核心建议 阅读详情

相关推荐

人大金仓数据库Kingbase FlySync同步程序安装

Kingbase FlySync同步程序(以下简称 KFS)是面向异地容灾、数据集中共享的场景推出的具备在异构数据平台间实现实时、增量数据同步的工具类产品,主要采用了物理日志解析技术,帮助用户解决不同数据平台的数据间可实现任意方向实时移动流转的问题,并保证此过程中数据不丢失,状态可监控,流转数据量可统计。KFS 需要安装的主要组件有 2 个,分别是后端同步程序和管理控制平台,另外KFS的部署方式也有2种,为分离部署何集中部署•集中部署:KFS与数据库部署在同一机器上。

weixin_44312518的博客 1179

JavaScript中的this详解

箭头函数和普通函数的区别如下。 普通函数:根据调用我的人(谁调用我,我的this就指向谁) 箭头函数:根据定义时所在的对象,而不是使用时所在的对象。(我在哪个环境中,this就指向谁) 例如: function foo() { setTimeout(() => { console.log('id:', this.id); }, 100); } var id = 21; fo...

EmotionComputer 7431

MuJoCo新手必看:5分钟搞定你的第一个机器人仿真(附Python代码)

本文为零基础新手提供了一份详尽的MuJoCo物理仿真引擎入门指南。从环境搭建、MJCF模型文件解析,到编写Python控制代码,手把手教你5分钟内创建并运行第一个机器人仿真。内容涵盖双摆模型控制与自定义四轮小车构建,帮助你快速掌握这一高性能开源工具,迈出机器人学与强化学习仿真的第一步。

weixin_29032489的博客 656

JS学习笔记三

js基础

liuqinhou的博客 585

【嵌入式原理系列-第七篇】ld脚本实战:从零构建MCU内存布局

本文是一篇针对嵌入式开发者的实战指南,详细讲解了如何从零开始为MCU编写ld链接器脚本以构建自定义内存布局。文章以STM32F103C8T6为例,深入剖析了MEMORY和SECTIONS指令的用法,并提供了OTA分区、非易失数据存储等高级定制案例,帮助开发者解决实际工程中的Flash与RAM管理难题,实现对程序运行的深度掌控。

weixin_29271263的博客 249

单片机控制双向可控硅的5种实用触发电路设计(附完整电路图)

本文深入解析了单片机控制双向可控硅的5种实用触发电路设计,涵盖从基础隔离到复杂负载驱动的实战方案。重点探讨了光电耦合器选型、过零检测同步、RC吸收电路精密计算以及应对感性负载和高噪声环境的加固策略,并提供了完整的电路图与调试避坑指南,旨在帮助开发者实现安全可靠的交流负载控制。

joy55的博客 2219

【JS】Javascript中的this到底是什么

JavaScript中的this是一个对于新手来说特别吓人并且不友好的概念。对于一个前端萌新来说,这个概念既模糊,又看不到它存在的意义。本文将解析JavaScript中的this,并且逐一分析他在每个常见场景中的意义和指向。

a1611107035的博客 3273

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

2023年电工杯 | 2023年电工杯数学建模竞赛思路(A题、B题)

前程算法屋的博客 5593

JS中的this指向

this的概念: 在js中,this的意思为“这个;当前”,是一个指针型变量,它动态指向当前函数的运行环境。 在不同的场景中调用同一个函数,this的指向也可能会发生变化,但是它永远指向其所在函数的真实调用者;如果没有调用者,就指向全局对象window。 普通函数:关于this,谁调用就指向谁,没有调用者,就指向全局对象window。 箭头函数:箭头函数的this指向于函数作用域所用的对象。 一、全局环境下的this指向 在全局作用域下,this始终指向全局对象window,无论是否是严格

m0_55990909的博客 4万+

【AI应用实战-Codex】Mac intel芯片下安装Codex(二)

摘要:本文介绍了在Intel芯片Mac上安装OpenAI Codex桌面应用时遇到的问题及解决方法。由于官方仅提供ARM64版本,导致Intel Mac无法直接运行。解决方案包括:1)使用社区脚本将ARM版DMG与x64 Electron重新打包成兼容版本;2)使用VSCode插件配合CLI作为替代方案。文章详细记录了重新打包过程中遇到的"electron_common_owl_features"绑定缺失错误,通过注入stub代码、重算ASAR完整性哈希等步骤成功解决问题。最终生成的Co

3541

YOLOv12改进策略【独家融合改进】| SPD-Conv+PPA 再次提升模型针对小目标的特征提取能力

SPD-Conv是一种新的 CNN 构建模块,用于替代传统 CNN 架构中使用的步长卷积(strided convolution)和池化(pooling)层,它由空间到深度(Space-to-depth,SPD)层和非步长卷积(non - strided convolution)层组成。

Limiiiing的博客 1029

js中this是什么?this的5种用法

概述: 1.在方法中,this指的是所有者对象。 2.单独的情况下,this指的是全局对象。 3.在函数中,this指的是全局对象。 4.在函数中,严格模式下,this指的是undefined。 5.在事件中,this指的是接收事件的元素。 ** 分述: ** 1.方法中的this 在对象方法中,this指的是此方法的“拥有者”。 this代表person对象 var person = { firstName:"Bill", lastName:"Gates"

qq_42732038的博客 1万+

LPDDR6与LPDDR5 channel/rank/die/bank技术探讨

LPDDR6与LPDDR5 channel/rank/die/bank技术探讨

zilan23的博客 3652

js中的this指向问题以及改变this指向

JS中的this 指向问题 代码解释: <!-- <button>点击</button> --> <script> var Btn = document.getElementsByTagName("button")[0]; Btn.onclick = function(){ console.log(this); //button fun () } function fun(){

weixin_51723279的博客 266

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JavaScript this 问题

thisJavaScript 中的this是一把双刃剑,灵活性强但容易引发混淆。通过掌握this的规则和常见场景,开发者可以避免常见问题并编写更清晰、健壮的代码。

Flying_Fish_roe的博客 850

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

js this 阮一峰_JavaScript关于this指向的问题

前短时间在js this指向问题上有些迷茫,这段时间通过查阅一些资料以及看了阮一峰老师对this指向问题的解析,自己也深受体会,下面就谈一谈通过学习后自己对this指向的深入理解。一丶关于this不同方式 调用的不同的表现方式var obj = { a: 1, f1: function () { console.log(this.a) } }; var f1 = obj....

weixin_42525582的博客 1054

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

js8-js中this相关问题汇总

js中this相关问题汇总一、this的基本使用 // 1、直接使用this,在浏览器是window对象,在node环境是global对象。 console.log(this); // 2、在对象中的this,如果是作为Obj.method调用,那么就是Obj对象,如果直接作为方法执行,就是全局对象 // global.id = 1; var obj = { id: 1, printThis: function () { console.log(this.id); } } ob

shuixiou1的博客 246

JS(javascript)中this的指向问题

众所周知,this的指向问题一直是JS中比较难的问题,很多时候我们都搞不清this到底指向的谁。今天,我就来给大家讲一下this的指向问题。 一句话概括:谁调用this,this就指向谁。 接下来给大家举几个简单的例子: var lilei = { name : "lilei", age : 18, say : function() { ...

weixin_44316351的博客 230

关于js中this的指向问题

https://www.cnblogs.com/pssp/p/5216085.html

qq_41398471的博客 165

js中this指向问题

在js中,this关键字的指向是一个比较重要的概念,它的值取决于函数的调用方式。

weixin_46541579的博客 1330

js中的this指向问题

aliven1的博客 254

javascript中this指向问题

之前在开发vue的时候,我经常碰到这样的问题: 在$http.post或者get内部的回调函数中无法使用this.xxx来获取data中的值或者改变data中的值 解决的方法就是在post或get外部 let that = this 从而在内部就能使用that.xxx来获取data中的值 之前知其然而不知其所以然,今天在复习JavaScript知识的时候梳理了一下this的有关知识 首先致谢阮一峰...

阿波罗吹雪的博客 561

JavaScript中this的指向问题

JavaScript中this的指向问题

cql_fan的博客 1060

JavaScript:this指向问题

this指向问题快速理解函数this指向问题_哔哩哔哩_bilibili。

m0_74141224的博客 689

JavaScript(this指向问题、JS执行机制、location,history对象)

JSday12 文章目录JSday12this指向问题JS执行队列JS是单线程同步和异步同步异步JS执行机制(事件循环even loop)location对象location对象属性:location对象的方法history对象 this指向问题 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,一般情况下this的最终指向的是那个调用它的对象。 全局作用域或者普通函数中this指向全局对象window(注意定时器里面的thi指向window) 方法调用中谁调用th

weixin_45886797的博客 423

js的this问题总结

在全局环境中(即不在任何函数内部),this 指向全局对象: 在 Node.js 环境中,this 指向 global 对象(但在严格模式下,this 是 undefined)。 2、对象方法中的this 当 this 出现在对象的方法中时,this 指向调用该方法的对象。 3、构造函数中的 this 在构造函数中,this 指向正在创建的实例对象。 4、箭头函数中的this 箭头函数不会创建自己的 this,它会捕获其所在上下文的 this 值。 5、事件处理器中的 this 在 DOM 事

m0_69888499的博客 1279
下一篇: 原型与原型链
ccxCode
博客等级 码龄8年 1粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值