对this的浅显的理解

敏捷估算与迭代计划实战:故事点、计划扑克与速率落地指南 在敏捷开发中,估算与计划是连接需求与交付的关键环节。故事点作为相对估算单位,通过计划扑克等协作方法,帮助团队规避绝对时间预测的偏差。其核心原理在于利用人类相对比较能力,提升估算一致性。技术价值体现在提高迭代计划准确性、暴露风险、对齐预期。典型应用场景包括迭代计划会、需求拆解、速率跟踪与回顾复盘。自然收敛到敏捷项目管理中的估算与计划实践,涵盖故事点、计划扑克、速率等热词,为团队提供可落地的操作框架。 阅读详情
谁调用this就指向谁!当没有明确调用对象时。this指向window!

先记住一个事,window是对象,是被实例化的对象,实例化过程是在页面加载的时候由JavaScript引擎完成的;
在JavaScript里直接使用this,this执行指向window;

函数声明会在全局作用域构造的时候完成,所以函数声明是window对象的属性,所以不管在哪里声明函数,声明函数最终都是属于window对象,声明函数里的this是指向window的;

函数表达式的this也指向window,当他被写在另一个函数里面也是这样;
其实,在JavaScript里面,任何匿名函数都是属于window对象,他们也是在全局作用域构造的时候完成定义和赋值,在定义匿名函数的时候它会返回自己的内存地址;

this都是指向实例化对象;
如果要把this从window变成其他对象,那么就得让function被实例化--使用new操作符;
使用了new操作符实例化的对象的this指向的是Object实例;
通过字面量方式定义对象的方式是new Object的简写,二者是等价的,所以里面的this也是指向Object实例的;

call和apply将this指针指向方法的第一个参数,如果没有参数的话,指向window;
bind也可以改变this的指向;
(这三个的区别:apply、call、bind的区别)

如果给定义对象里面传入了函数:
传入的参数是函数的别名,那么函数的this就指向window;
传入的参数是被new过的构造函数,那么this 就指向实例化的对象本身;
如果想把被传入的函数对象里this的指针指向外部字面量定义的对象,那么就是用apply和call;

总结:在javascript 语言里没有通过new(包括对象字面量定义)、call和apply改变函数的this指针,函数的this指针都是指向window的;

例子:
var b = function() {

     console.log(this); 

     return function() {

          console.log(this);
     }
}
var c = b();   // ?window,函数表达式里的this指向window

c();   // ? window,c现在等于function() { console.log(this); }

var a = {

     fn : c
}

a.fn();   // ? Object,c在一个字面量里面,字面量创建的对象也相当于new了一次,所以
            //this指向一个实例对象

var e = {

     fn : function() {
          c();
     }
}

e.fn();    // ? window 这是一个匿名函数,this指向window,这里相当于
             //var e = {

             //      fn : function() {
             //           function() {
             //                console.log(this);
             //           }
             //      }
             //}



eval()--该函数执行时的作用域是当前作用域,等同于在该行将里面的代码填进去,所以虽然在指向的时候看起来没有指定当前对象,但是this不是指向window的;

关于addEventListener()和attachEvent():
在IE中,使用attachEvent进行事件绑定,this指向的是window而不是当前节点;
在其他浏览器中,使用adEventListener进行事件绑定,this指向的是当前节点;

这里有个关于作用域的文章:关于JavaScript的作用域

泛微OA与金蝶云星空深度集成实战:审批与表单双场景解析 本文深入解析泛微OA与金蝶云星空的深度集成实战,聚焦审批流程与表单对接两大核心场景。通过具体案例,详细阐述了如何实现业务数据与审批流程的自动联动,打破数据孤岛,提升企业运营效率与数据一致性,并分享了接口设计、安全策略及实战避坑指南。 阅读详情

相关推荐

Kettle安装与使用

Pentaho Data Integration作为一个端对端的数据集成平台,可以对多种数据源进行抽取(Extraction)、加载(Loading)、数据落湖(Data Lake Injection)、对数据进行各种清洗(Cleasing)、转换(Transformation)、混合(Blending),并支持多维联机分析处理(OLAP)和数据挖掘(Data mining)。勺子(spoon.bat/spoon.sh):是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。

jnrjian的博客 1万+

浅谈对this的理解

1、this的理解 第一准则: this 永远指向函数 运行时 所在的对象,而不是函数被创建时所在的对象【不包含箭头函数】 2、this 的集中指向: window 对象 如: console.log(this); 函数中的 this 函数中的this,谁调用函数,函数中的 this 就指向谁,一般指向 window 如: function foo() { console.log(this); } foo(); 对象中的 this ,一般指向对象 如: var obj = { name: "ja

LY__lyxka的博客 2459

从零构建智能ai语音助手:ESP32s3+Python+大语言模型实战指南

本文详细介绍了基于ESP32S3硬件和Python后端的智能语音助手系统开发指南。系统采用ESP32S3采集语音,通过WebSocket实时传输到Python后端处理,利用大语言模型实现自然语言理解和意图识别,再通过TTS合成语音返回。文章从系统架构、工作流程、技术实现(包括OPUS编码、WebSocket通信、ESP32音频处理)等方面进行了详细讲解,并提供了分阶段学习路线和常见问题解决方案。该项目展示了物联网技术与AI技术的融合应用,相比传统语音系统具有更高的灵活性和智能性,为开发者提供了完整的实现方案

Despacito0o的博客 2629

谈谈对this对象的理解?

箭头函数不绑定this,箭头函数没有自己的this关键字 如果在箭头函数中使用this,this关键字将指向箭头函数定义位置的this function fn() { console.log(this); } const obj = {name: 'zhangsan'}; fn.call(obj); // fn内部的this指向obj对象 //{ name: 'zhangsan' } 例子: var obj = { age: 20, say: () => {

weixin_43912756的博客 3191

Prompt提示优化工具

在大模型使用过程中,Prompt尤为重要。一个好的Prompt可以解决很多的问题。那么如何撰写一个完美的Prompt?下面汇总了一些Prompt工具,可以辅助日常Prompt的编写。

HJ_blog 3108

YOLOv26详解 | 一文带你从代码角度深入理解ultralytics最新作品yolov26的创新 | 训练、推理、验证、导出 (附网络结构图PPT可用,全网最全)

YOLOv26带来多项创新:1)采用双检测头机制(One-to-Many和One-to-One)实现端到端无NMS推理;2)移除DFL简化边界框回归;3)引入ProgLoss+STAL优化小目标检测;4)使用MuSGD优化器提升训练稳定性。网络结构方面,SPPF模块增加shortcut连接,并在C3k2中引入PSABlock注意力机制。该版本更注重实际部署,简化了推理流程,提升硬件兼容性。教程涵盖模型训练、验证、推理及导出全流程,支持多种格式转换如ONNX、TensorRT等,适合工业应用场景。

Snu77的博客 4062

谈谈this对象的理解

函数的this关键字在JavaScript中的表现略有不同,此外,在严格模式和非严格模式之间也会有一些差别在绝大多数情况下,函数的调用方式决定了this的值(运行时绑定)this关键字是函数运行时自动生成的一个内部对象,只能在函数内部使用,总指向调用它的对象// 当前调用栈是:baz // 因此,当前调用位置是全局作用域 console . log("baz");bar();//

itpeilibo的博客 938

Flutter框架GetX从入门到精通第二篇:路由管理-告别繁琐的Navigator

Flutter框架GetX从入门到精通第二篇:告别繁琐的Navigator。本系列将带你从零开始,一步步掌握 GetX 框架的核心功能与实战技巧。

鹏多多的博客 170

浅谈this属性对象的理解

标题浅谈This对象的理解 this是执行上下文的一种属性,它指向最后一次调用的对象。在实际开发中,this的指向可以通过四种调用模式来判断。 第一种是函数的调用模式,当一个函数不是一个对象的属性时,直接作为函数来调用时,this指向全局对象。 第二种是方法调用模式,如果一个函数作为一个对象的方法来调用时,this指向这个对象。 第三种是构造器调用模式,如果一个函数用new调用时,函数执行前会创建一个对象,this指向新创建的对象。 第四种是apply、、call和bind调用模式,这三种方法都可以显

qq_35389653的博客 780

Windows 11 安装 Miniforge,配置国内源

本文详细介绍了在 Windows 11 系统中安装 Miniforge 的完整流程,包括下载、安装选项设置、配置国内镜像源(如清华大学源)以加速包管理,并启用 mamba 提升依赖解析与安装速度。同时涵盖 conda 与 mamba 的基本使用验证、PowerShell 初始化及环境提示符优化,帮助用户快速搭建高效、开源、免费的 Python 科学计算环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 4510

ImportError: DLL load failed while importing _rust: 找不到指定的程序的解决方案

 本文主要介绍了ImportError: DLL load failed while importing _rust: 找不到指定的程序的解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 19万+

解剖对this的理解

this 的指向的理解 this 可以分为全局和局部环境来细分 全局环境中 ===>this指向 window 1、this表示当前的对象 this 的指向是根据上下文来决定的 默认指向的是window对象,可以省略不写 2、定时器中的this指向的是window 3、箭头函数中的this指向是父级作用域,可以说是上下文 =>指向它的父级作用域,而不是调用它对象 箭头函没有自己的this 即时调用call/apply/bind也无法改变箭头函数的this 箭头函数本身没有名字 箭头函数不能

weixin_53532986的博客 637

交换机端口模式详解:Access、Hybrid、Trunk

交换机是网络中至关重要的组件之一,用于连接各种设备并启用数据的高效流动。为了更好地管理和控制网络流量,交换机提供了不同的端口模式,其中包括Access、Hybrid和Trunk。本文将深入探讨这三种端口模式,详细解释它们的配置、特性和应用场景,以帮助网络管理员更好地理解和优化网络架构。

网络技术联盟站 4014

浅显易懂的理解JavaScript中的this关键字

在JavaScript中this变量是一个令人难以摸清的关键字,this可谓是非常强大,充分了解this的相关知识有助于我们在编写面向对象的JavaScript程序时能够游刃有余。 1. 一般用处 对于this变量最要的是能够理清this所引用的对象到底是哪一个,也许很多资料上都有自己的解释,但有些概念讲的偏繁杂。而我的理解是:首先分析this所在的函数是当做哪个对象的方法调用的,...

weixin_30491641的博客 111

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

javascript闭包 this指针

点击查看:javascript闭包 看了这篇文章我才真正知道闭包究竟是什么东西,关于 javascript 的书籍 比如权威指南 感觉讲的比较复杂 看下来还是不知道闭包是什么,偶然发现这篇文章,我才理解了闭包 同时还有一篇文章将this指针的也很蛮好的,不仅仅是告诉了我们 this 什么时候是指 window 什么时候指得是 obj ,还告诉我们其中的原理,之前糊里糊涂的,看完这篇文章感觉自己挺清...

Chennfengg222的博客 265

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

<你不知道的JavaScript>读书笔记

近几天看了一本不错的 JavaScript 的书,是 Kyle Simpson 写的 <You Don't know JS>。这本书是 Kyle Simpson 在 Github 上的开源项目,截止到现在已经有 27,796 个 star 。本想看英文版本,不料在某东上看到了中文版,于是乎就买下了。结果,翻译得还不错,推荐。 原著github地址 ,某东链接自行搜索呵呵。 ...

154

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

新的一次对this的理解~

阅读 https://juejin.im/post/5d51feaef265da039005219e#heading-18 所得 感觉每一次学习以前学过的知识都可以获得到一些新的东西,很开心 在又一次详细的学习后, 做了复盘 文章都是复习时自己的想法就直接写了进来 这次学习对bind的理解加深了一些 原来bind一旦指定它上下文就无法改变, 还有箭头函数中的this也很奇妙! this指向 当...

qq_43553067的博客 244

浅显易懂之this指向

前言 对于前端开发er,往往在学习javascript的时候,会遇到一些疑惑点。这些疑惑点往往集中在以下一些方面。 this指向 原型 闭包 ... 不要害怕,每个人刚开始接触一样东西的时候,都会遇到一些困惑。 成长的过程,无疑就是发现问题,进而解决问题,最后总结问题。 今天想给大家分享下javascript中关于this指向的那些事。 相信看完之后,你一定会受益匪浅。 正文 大多数人的认知...

weixin_34233421的博客 134

JS中的call和apply浅显的理解

  对这个知识点只有一个浅显的认识,记录一下,加深自己的印象!如有错误的地方,希望指正!    call和apply用途: 1.传递参数  2 扩充函数的作用域    格式:fn1.call(obj,num1,num2,num3...)   可以是一个值或者多个值                fn2.apply(obj,[num1,num2,num3])  值应该放在数组当中,一个或者多个   ...

不知WEB为何物 198

call-apply-bind浅显理解

call-apply-bind解析 call/apply/bind三个作用大致相似但使用方式又有所不同,都与this有关,它们都是用来重定义this对象的。 按照我个人的理解就是借用,即自身以及原型上没有某种方法,通过借调的方式借来此种方法,参数数据还是使用自身的。 call function Person(name, age){ this.name = name; this.age = age; } function Student(name, age, grade){ Person.cal

weixin_41993525的博客 186

我对闭包的理解,非常浅显易懂

我们可以看到其实页面上并没有什么东西,只是引入了`element-ui`的`el-button`,配合使用了`vue-router`而已) 可以看到就这么小的一个项目,打包出来的js文件居然足足有800+k,css也有200+k,这是不能忍受的) 从图片中我们可以看到,`element-ui`真的太大了朋友们。

梅花寺 253

this指向,绑定,词法

this绑定,this词法 .首先说一下什么是this,this就是js里面的一个关键词,还可以理解为他是一个指向。既然是指向,就意味着他有一个绑定的概念,this自定义在每一个函数的作用域内,函数在不同的位置执行this的指向不同,因此,this指向不是取决于函数在哪定义,而是取决于函数在哪执行 首先明白一个概念,this不是定义在函数里面他就指向函数 绑定规则 默认绑定为全局(非严格模式) ...

前端入门神器 342

javascript的【原型】【prototype】理解-【浅显易懂】【彻底搞明白】

需要工具:Chrome 语言:javascript 目的:彻底搞明白 全文原则:【原型是在类型上的,对象上没有】【原型属性中的方法或属性会被对象中的同名方法属性覆盖,其实内存中还是存在的】【高清楚this,表示当前对象】 function Aclass() { this.Property1 = 1; this.

知至智 2867

关于JAVA面向对象编程的浅显理解

封装就像我们生活中的手机一样,手机内部有许多复杂的元件组成,但是我们并不知道内部构造,我们只需要通过手机上的按键、屏幕等交互接口来操作手机就可以了,而手机厂商也只需要改进手机的内部构造同时保持外部接口(操作方式)不变就可以让用户适应新手机。通俗来说继承就是一个大类中小类可以继承大类的一些特性,比如我们知道哺乳动物是胎生且用肺呼吸,又知道猫和狗都是哺乳动物,那它们就可以继承哺乳动物胎生且用肺呼吸的特性。类是面向对象编程的基石,它是一种抽象的数据类型,用于定义对象的模板或蓝图。方法,同时,它还有自己的。

violet37302的博客 352

c++学习之this指针,初始化列表,const,static

问题一: this指针:,即类中指向自己本身的指针,可以用来表明类中的成员变量与成员函数中的参数的区别。 //代码一 class person{ public: int age; public: void setage(int age) { this->age=age;//最浅显用法 } } 在实际接触时this指针对于我这种小白来说接触不是太大,但是对于大牛们无疑是把利器。而我们能够了解...

四年rain的博客 708

call,apply,bind改变this指向

推荐非常浅显易懂的一片文章,搭配代码实例,易于理解!this与call… 首先我们先要明确一点: this 永远指向最后调用它的那个对象!!! 然后我们在看看这三种方法的异同: 1. call()主动执行,第一个参数为this要指向的对象,函数执行需要的实参依次写在后面。 2. apply()主动执行,第一个参数为this要指向的对象,第二参数为一个数组(类数组),数组里包含所有实参...

Little_ChenH的博客 645
上一篇: apply、call、bind区别、用法
下一篇: JavaScript数组方法
A_dangdang
博客等级 码龄11年 4粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值