改变this指向 call、apply、bind

NLP高频面试题(一)——Transformer的基本结构、作用和代码实现 本文详细介绍了Transformer模型的基本结构和PyTorch代码实现过程。首先解析了Transformer的核心组成部分,包括嵌入层、多头自注意力机制、位置编码、前馈神经网络、编码器和解码器等模块,并通过清晰的代码示例逐步展示了如何在PyTorch中构建完整的Transformer模型。文末提供了一个可运行的简单示例,帮助读者快速理解并实践Transformer的核心原理与实现方法。 阅读详情

this指向

首先说一下this指向问题,在es5和es6中有所不同

  • es5中this指向调用this所在函数的对象
  • es6中this指向es6函数调用位置所在的上下文
    在js中我们借助call,apply,bind三个函数可以改变this的指向,需要注意:
  1. es6函数不能使用call,apply,bind来改变this指向
  2. call,apply,bind只能由函数调用
  3. 在运行call,apply,bind的时候,调用他们的函数也会运行

call基本使用

var person = {
    name : "edward"
}
var obj = {
    print : function(age){
        console.log(this.name , age)
    }
}
obj.print.call(person , 30);//edward 30

每一个函数都有call属性用来改变一个函数的this指向,上述代码中调用print函数的call属性,将print函数的this从obj变为person。同时call函数可以接收参数,每个参数用逗号隔开,call中传递的参数,能够在print函数中接收到。

apply基本使用

var person = {
    name : "edward"
}
var obj = {
    print : function(age){
        console.log(this.name , age)
    }
}
obj.print.apply(person , [30]);//edward 30

apply函数跟call原理一样,区别在于apply函数接收的参数用数组表示,数组中每一个参数用逗号隔开。

bind基本使用

一个函数也可以调用bind属性来改变这个函数的this指向。代码如下:

var person = {
    name : "edward"
}
var obj = {
    print : function(age){
        console.log(this.name , age)
    }
}
obj.print.bind(person , 30)();//edward 30

bind函数接收参数的方式跟call一样,bind函数运行之后会返回一个函数,所以上述代码中需要在bind运行之后再写一对括号。

区别

  1. apply和call基本相似,区别只是传入的参数不同,call可以传入多个参数,apply只能传入一个数组,要传入的参数写在数组中
  2. bind方法会创建一个新的函数,当被调用的时候,将其this关键字设置为提供的值,必须手动调用
    注意:es6函数不能使用call,apply,bind来改变this指向
增量学习入门:概念、代码示例与应用场景 在当今快速变化的数据环境中,传统的机器学习模型往往需要重新训练以适应新的数据。然而,这种方法不仅耗时耗力,还可能导致模型性能的不稳定。增量学习(Incremental Learning)作为一种新兴的学习范式,能够在新数据到来时动态更新模型,而无需重新训练整个模型。本文将详细介绍增量学习的基本概念、代码示例、应用场景以及需要注意的事项。增量学习作为一种高效的机器学习方法,能够在新数据到来时动态更新模型,具有广泛的应用前景。通过本文的介绍,相信你对增量学习有了初步的了解。 阅读详情

相关推荐

避坑指南:LAMMPS做GCMC模拟时,化学势mu和压力p到底怎么设?

本文详细解析了LAMMPS中巨正则蒙特卡洛(GCMC)模拟的关键参数设置,特别是化学势(mu)与压力(p)的正确计算方法。通过理论分析、实用公式和黄金法则,帮助用户避免常见误区,提升模拟精度和效率,适用于各类复杂体系的分子模拟研究。

weixin_42525289的博客 432

js this的指向,call ,apply,bind改变this的指向

js this的指向,call,apply,bind改变this的指向

jililin123的博客 752

SYSU-MM01数据集评估避坑指南:从RGB/IR图像理解到Python评估脚本调优

本文详细解析了SYSU-MM01数据集在跨模态行人重识别(ReID)评估中的关键技巧与常见陷阱。从RGB/IR图像理解到Python评估脚本优化,提供了数据评估模式选择、single-shot/multi-shot差异分析、特征文件处理规范等实用指南,帮助研究者避开指标异常问题,提升评估效率与准确性。

weixin_29044713的博客 196

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

优快云博客主页地址:https://mengjian.blog.youkuaiyun.com/ 908

基于 VS Code + CMake + Make + GNU工具链 + OpenOCD 的通用MCU开发环境搭建教程

以CH32V307(RISCV)和STM32F103(Cortex-M3)为例的Vscode+gnu单片机环境搭建。

余十三_的博客 2177

STM32 SPI驱动TFT LCD实战:时序配置与硬件协同

SPI(串行外设接口)是一种高速、全双工、同步串行通信协议,广泛应用于微控制器与显示模组等外设的数据交互。其核心依赖时钟极性(CPOL)与时钟相位(CPHA)组合定义的四种工作模式,直接影响数据采样可靠性;而片选(NSS)与MOSI/SCLK等信号的硬件映射,则决定了多设备共总线下的通信稳定性。在TFT LCD驱动场景中,SPI凭借低开销、高吞吐优势成为主流选择,尤其适配ST7789、ILI9341等集成显示控制器的模块。本文聚焦STM32L系列MCU通过SPI2驱动1.3寸LCD的完整链路,涵盖Mode

php55的博客 1211

call、apply、bind区别?bind之后还能修改this指向吗?

这三个都是改变函数执行时的上下文,也就是改变函数运行时的this指向。 var name = "yr", obj = { name: 'lyl' }; function fn() { console.log(this.name); }; //函数调用 fn() //yr //函数应用 fn.call(obj); //lyl ...

lanseguhui的博客 1213

PHP实战:5分钟搞定SM4国密加密算法集成(附完整代码)

本文提供了一份可直接用于生产环境的PHP SM4国密加密算法集成实战指南。文章详细解析了SM4算法核心,对比了ECB与CBC工作模式,并给出了包含完整代码、密钥管理、数据填充及性能优化的解决方案,帮助开发者快速、安全地在PHP项目中集成国密加密算法。

2a4s6d8f0g的博客 342

【js】bind改变this指向

bind改变this指向

bbt953的博客 375

Lm317电压源芯片制作电流源

还在找电流源芯片么?如何使用电压源芯片快速搭建电流源。

Ekko的博客 1万+

FakeNewsGPT4:通过知识增强的大规模视觉语言模型推进多模态假新闻检测

当前,多模态假新闻的大量涌现导致了显著的分布差异,这一现状亟需我们开发具备广泛适用性的检测器。然而,现有假新闻检测器因特定领域内的训练方式,难以有效获取开放世界中的事实信息。这种训练的封闭性限制了传统检测器的能力,特别是在面对跨域假新闻时,其表现往往不尽如人意。具体而言,开放世界中的假新闻在两个方面具有显著的分布差异:一方面,其操纵内容多种多样,新闻的任一部分都可能受到创意策略的操控;另一方面,真实背景复杂多变,不同地区的新闻背景和主题焦点存在显著差异。

qq_52053775的博客 823

连续bind()多次的结果

js连续绑定多次bind只有第一次生效

OceanH的博客 1294

机器学习(十九):梯度提升回归(GBR)

机器学习中的梯度提升回归算法原理与案例实战。

全栈川川 5157

2022前端面经---改变this指向问题(call、apply、bind)

首先我们需要去回顾一个问题:什么是this指向呢?我们必须要知道this是一个关键字,然后this的出现会有普通函数和箭头函数普通函数:谁调用,this就指向谁,如果没有调用者,this默认指向window箭头函数(es6):箭头函数的this是父级作用域的(精解:箭头函数外如果还有一个函数包裹,那么这个this指向的就是外包裹函数。如果箭头函数外没有外包裹函数,那么this就指向window)//window我们直接在控制台打印this,会发现打印出来的是window。

前端小白在前进的博客 9591

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

改变this指向(call、apply、bind)详细

改变this指向的三种方式1.call方法基本语法:函数.call(this,arg1,arg2....)函数调用call改变this指向对象里的方法调用call改变this指向2.apply方法基本语法:函数.apply(this,[arg1,arg2])函数调用apply改变this指向对象方法调用apply改变this指向apply使用场景①改变this指向②操作数组的时可能会用到这个方法3.bind方法基本语法:函数.bind(this,arg1,arg2....)函数调用bind方法改变this指

萌萌的博客 2905

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Bind & Call & Apply(改变this指向)

Bind & Call & Apply(改变this指向) Bind/call/apply三个方法都是可以改变对应函数的this指向的, bind方法通过该函数调用并且返回一个新的函数, 新的函数已经修改了this指向,只有调用这个新的函数,函数体才会被执行。 (会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,之后的一序列参数将会在传递的实参前传入作为它的参数) 而call/apply方法是会直接绑定this并进行调用的, 调用的时候,函数内

SeriousLose 1600

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【JavaScript】改变函数的this指向——call函数、apply函数、bind函数

【JavaScript】改变函数的this指向——call函数、apply函数、bind函数

weixin_43790653的博客 2041

call, apply,bind改变this指向方法

call,  apply,bind都可以改变this指向 区别: call只能一个参数一个参数的传入。 apply则只支持传入一个数组 至于bind方法,他是直接改变这个函数的this指向并且返回一个新的函数,之后再次调用这个函数的时候this都是指向bind绑定的第一个参数。bind传餐方式跟call方法一致。 列子: <script> //比方说张三的中饭有红...

Candy_mi的博客 604

改变this指向:call、apply、bind

call、apply、bind都是用来改变this指向 1.call 语法: 函数.call(newObj,参数1,参数2,...参数n) newObj:要指向的this 当你不想改变this时 可以传null undefined 参数1..参数n:函数自身需要的参数 let fn = function (a, b) { console.log(this, a, b); } let o...

^_^ 509

JS 中改变函数的this指向,call,apply,bind方法的使用和区别

JS 中改变函数的this指向,call,apply,bind方法的使用和区别 1. 普通函数调用,此时 this 指向 window function a() { console.log(this); // window } a(); 2.构造函数调用, 此时 this 指向 实例对象 function Person(age, name) { this.age = age; this.name = name console.log(

web2001chu的博客 1872

js中的this指向和如何去改变this指向:call、apply、bind

call、apply、bind用法:改变this指向

YY的博客 447

this指向及改变this指向的方法(call、apply、bind)

this指向及改变this指向的方法 任何函数都有属于自己的this 函数的调用方式决定了this的指向 一、this指向window 1)、普通函数(声明式函数)调用,此时this指向window 2)、 箭头函数没有自己的this,它的this指向上下文中的this(即所处环境的this) 3)、赋值式函数调用,此时this指向window 4)、定时器函数,指向window //普通函数(声明式函数) function fn(){ console.log(this);//指向window }

weixin_46449470的博客 374

js的this理解以及call apply bind改变this指向

关于JavaScript中的this 1. 函数预编译过程this - > window function foo() { console.log(this); } foo(); //全局变量 函数调用中的this也指向全局变量。 注:ECMAScript5的strict模式不存在全局变量,这里的this是undefined。 2. 全局作用域里this -> window...

pz1021的博客 368

JS函数内this的指向以及call()、apply()、bind()改变this指向的方法

一:this指向 this的指向,是当我们调用函数时确定的,调用方式的不同 决定了this指向的不同,一般是指向函数的调用者 调用方式 this指向 普通函数 调用 window 构造函数调用 实例对象 原型对象里面的方法也是指向实例对象 对象方法调用 该方法所属对象 事件绑定方法 绑定事件对象 定时器函数 window 立即执行函数 window <body> <button>点击</button> <s

刘珈佚的博客 547

改变 this 指向之call,bind,apply

改变 this 指向之构造函数 function TestName(name){ this.name = name } let name1 = new TestName('name1111') console.log(name1.name) // name1111 let name2 = new TestName('name2222') console.lo...

weixin_44051815的博客 154

JS中改变this指向的方法(call和apply、bind)

导读: this this是javascript的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。 this一般指向的是当前被调用者,但也可以通过其它方式来改变它的指向,下面将介绍三种方式 call,apply,bind call、apply、bind的作用是改变函数运行时this的指向。 call,apply,bind 这三个函数是 Function原型上的方法 Function.prototype.call() Function.pr

zzDAYTOY的博客 679
上一篇: 利用new Object创建对象
下一篇: 个人博客网站项目
commeil
博客等级 码龄5年 2粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值