首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS 中几种轻松处理’this’指向方式

下面的教你如何简单地将 `this` 绑定到所需的值。 在开始之前,我需要一个辅助函数`execute(func)`,它仅执行作为参数提供的函数。...或者静态地将`this`绑定到包含的对象(使用箭头函数、`.bind()`方法等) 方法分离问题,以及由此导致`this`指向不正确,一般会在下面的几种情况中出现: **回调** ```JavaScript...3.使用箭头函数 有没有办法在没有附加变量的情况下静态绑定this? 是的,这正是箭头函数的作用。...胖箭头方法 bind 方式有点太过冗长,咱们可以使用胖箭头的方式: ```JavaScript class Person { constructor(firstName, lastName)...当然如果你不用使用 bind 这种冗长方式,也可以使用简洁方便的胖箭头表示方法。

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DeepMind将范畴论、抽象代数组合,发现GNN与DP之间的联系

    这里的类别是指对象集合(所有有限集)以及可组合箭头(有限集之间的函数)的概念。...然而,前推是有问题的,因为 t 在使用函数组合时面临错误的方向。为了得到一个指向正确的箭头,需要原像( preimage ) t^-1 : W → P(E),它取 E 的幂集的值。...然后,将核应用于生成的边缘特征,将发送者的特征与任何提供的边缘特征(例如边缘权重)集成。 在应用核之后,将会得到边缘消息 m : E → R 作为结果。...现在需要将这些消息发送到接收节点,DeepMind 为此使用了前推。如前所述,他们定义 ,并将其解释为 中的形式和。 直观地说,(t_∗m)(v) 是 v 处的传入值包。...也许最清楚的是最后一个箭头,聚合器 ( )。如果我们让 GNN 选择的聚合函数与目标算法使用的函数匹配,这应该会立即提高样本复杂性和泛化能力。

    84940

    js 箭头函数详解

    认识箭头函数 es6 新增了使用胖箭头(=>)语法定义函数表达式的能力,很大程度上,箭头函数实例化的函数对象与正式的函数表达式创建的函数对象行为是相同的。...任何可以使用函数表达式的地方,都可以使用箭头函数: // 普通函数 let sum = function(a, b) { return a + b; } // 箭头函数 let sum1 =...(a, b) => { return a + b; } 箭头函数简洁的语法对开发者来说是十分友好的,从上面的例子可以得知箭头函数的简单用法: (参数) => { 函数体 } 2....:22 原因箭头函数没有this,箭头函数的this是继承父执行上下文里面的this ,这里箭头函数的执行上下文是函数fn1(),所以它就继承了fn1()的this,obj1调用的fn1,所以fn1的this...相应变量会在页面的生命周期内存续,所以使用window访问会为undefined): var a = 1; window.a; // 1 let b = 1; window.b; // undefined 将let

    1.2K10

    Python自动化之Python保留字、标识符、变量

    VOL 395 07 2022-06 今天距2023年208天 这是ITester软件测试小栈第395次推文 点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 09:00准时推送...微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信交流群”、“内推群”一起进群打怪。 本文1317字,阅读约需4分钟 Hi,大家好,我是胖虎。...在上一篇Python自动化测试系列文章:Python自动化之Python输入函数、转义字符,主要介绍Python输出函数-print的详细用法。...运行后, 输出结果报错。 二 标识符 1 标识符含义 变量、函数、类、模块和其他对象起的名字叫标识符。...name变量被重新赋值后, 原来的胖虎没有被对象引用,成为内存垃圾, name指向新的值ITester, 在内存中体现如下: 以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看

    67110

    前端面试什么样的回答

    箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?普通函数通过 function 关键字定义, this 无法结合词法作用域使用,在运行时绑定,只取决于函数的调用方式,在哪里被调用,调用位置。...(取决于调用者,和是否独立运行)箭头函数使用被称为 “胖箭头” 的操作 => 定义,箭头函数不应用普通函数 this 绑定的四种规则,而是根据外层(函数或全局)的作用域来决定 this,且箭头函数的绑定无法被修改...箭头函数常用于回调函数中,包括事件处理器或定时器箭头函数和 var self = this,都试图取代传统的 this 运行机制,将 this 的绑定拉回到词法作用域没有原型、没有 this、没有 super...] 方法,创建一个实例对象,然后再执行这个函数体,将函数的 this 绑定在这个实例对象上当直接调用时,执行 [Call] 方法,直接执行函数体箭头函数没有 [Construct] 方法,不能被用作构造函数调用...将这个空对象的隐式原型(__proto__),指向构造函数的prototype属性。让函数内部的this关键字指向这个对象。开始执行构造函数内部的代码(为这个新对象添加属性)。

    75130

    箭头函数和常规函数之间的 5 个区别

    instanceof Car; // => true Car 是常规函数,使用关键字 new 调用时会创建 Car 类型的新实例。...隐式返回 常规函数 使用 return expression 语句从函数返回结果: function myFunction() { return 42; } myFunction(); // =>...有一种更好的方法:把箭头函数作为类字段。 箭头函数 感谢类字段提案(目前在第3阶段),你可以将箭头函数用作类中的方法。 与常规函数相反,现在用箭头定义的方法能够把 this 词法绑定到类实例。...相反,箭头函数未定义 arguments(但是你可以用剩余参数 ...args 轻松访问箭头函数参数)。 如果箭头函数有一个表达式,则即使不用 return 关键字也将隐式返回该表达式。...最后一点,你可以在类内部使用箭头函数语法定义去方法。粗箭头方法将 this 值绑定到类实例。 不管怎样调用胖箭头方法,this 始终等于类实例,在回调这些方法用时非常有用。

    57930

    【JS】446- 你不知道的 map

    但是还不够通用,将add视为reducer,plusOne视为对value的预处理函数fn,通过结合fn和reducer生成一个新的reducer提供给reduce const makeMapReducer...,像这几个数组都是属于 Array(Array String):[],[[], []],[[], ['foo'], ['bar`, 'baz']] 小写字母是类型变量 类型变量可以代表任何类型,除非用胖箭头...(下面有介绍)对它做类型约束 ->(箭头)函数的类型构造函数 -> 是一个中缀类型构造函数,这个类型构造函数接受两个参数,箭头左边的参数是输入类型,右边的参数是输出类型 -> 可以接受0个或多个输入类型作为左边的参数...所有的“方法”都拥有一个隐含的参数类型-所在对象的类型 a ~> a -> a 代表着一类方法:是类型为 a 的对象上的方法,且这个方法接受一个类型为a 的参数,返回一个类型为 a 的值 =>(胖箭头)...胖箭头用来对类型变量做类型约束 比如有这么一个方法 a ~> a -> a ,在这个方法的类型签名中,a 可以代表任何类型。

    1.3K20

    让天下没有难学的js之this到底是什么,怎么用,这里可能给你答案

    foo()被引用给了对象obj的foo属性 } obj.foo() // 打印结果为 // {a: 5, foo: ƒ} // 5 像上述方式,当函数作为对象的一个属性被调用时,我们则可以称之为隐形绑定...这个新对象会被执行 [[ 原型 ]] 连接。 这个新对象会绑定到函数调用的 this 。 如果函数没有返回其他对象,那么 new 表达式中的函数调用会自动返回这个新对象。...,所以说,如果你在函数里返回了新的对象,那么 new 表达式中的函数调用会自动返回这个我们手动创建的新对象,否则将返回自动创建的那个对象,注意当函数返回了非对象和undefind、null时,bar依然等于我们创建的那个实例...但是 ES6 中介绍了一种无法使用这些规则的特殊函数类型:箭头函数。 箭头函数并不是使用 function 关键字定义的,而是使用被称为“胖箭头”的操作符 => 定 义的。...以上代码可以看出,箭头函数的this指向取决于它所在作用域的this,并且箭头函数无法被改变this指向,无论是用call还是new。

    53730

    太胖就会变秃,这回真的有依据了!日本学者发现肥胖会诱导毛囊衰竭 | Nature

    结果令人极为惶恐…… 在老年小鼠(20个月龄)中,只是连续摄入1个月的高脂肪食物,毛发就已经出现了明显的脱落迹象。 ?...△HFD组小鼠又胖又秃 从表象上看,肥胖会导致脱发已经实锤了。 那么具体的机制是怎样的呢? 这就要从毛发的源头——毛囊上找答案。...上图为小鼠的毛囊图像,箭头所指出的是没有检测到含HFSCs凸起的毛囊。 而且小鼠越胖,减少的毛囊干细胞就越多 此外研究人员还发现,它们的毛囊干细胞相对于普通小鼠,更多集中在上层。...这对人们研究肥胖与衰老的关系,有一定的启示意义;也让干细胞研究成为预防、治疗各种老年病的一种新可能。...虽然这还只是在小鼠身上的实验,但是我们的头顶已经感觉到了丝丝的凉意…… 胖就算了……还头秃,这谁能承受得住! 网友们看到研究结果后,已经发出了声声叹息: 肥胖已经令人悲伤了,还头秃,悲伤无以复加。

    27820

    JavaScript中的箭头函数

    前言 本文可以让你了解所有有关JavaScript箭头函数的信息。我们将告诉你如何使用ES6的箭头语法,以及在代码中使用箭头函数时需要注意的一些常见错误。你会看到很多例子来说明它们是如何工作的。...在本例中,你必须在胖箭头符号(=>)之前添加一对空的圆括号()。...如果你的函数使用隐式返回来返回一个对象字面量,你需要使用圆括号来包裹该对象字面量。不这样做将导致错误,因为JavaScript引擎将对象字面量的大括号错误地解析为函数的大括号。...console.log(netflixSeries.addLike())应该会增加一个喜欢的人数,然后在控制台上打印新值: const netflixSeries = { title: 'After...事实上,将箭头函数替换成常规函数就可以了: const listYourFavNetflixSeries = function() { const favSeries = Array.from(arguments

    2.1K20

    Git提交代码错了吃后悔药的几种常用办法

    如果你也遇到这个问题,那么今天胖哥分享的这篇文章将非常适合你。 2. Commit 错了怎么办 放心都是有后悔药吃的,我们来看看。...,也可以通过git commit --amend来解决: git commit --amend --author“felord” 尽量确保这些错误在你本地提交时修复,推送到远程时使用...场景五 代码已经推送到远程服务器了,我想撤回某个文件,你可以这么操作: # 查看文件历史版本 git log # 回滚到指定commitId git checkout <commitId...总结 我经常用的也就这些了,但是吃后悔药的时候一定要小心,最好拉一个新分支在新分支上试试,不要强吃后悔药,不然你会后悔的。...目前像 IDEA 都是可视化操作你可以不用命令操作,不过胖哥个人觉得这些命令还是要熟悉的。好了今天的分享就到这里,多多关注:码农小胖哥 获取更多的干货知识。

    85420

    【知乎热门回答】——JavaScript 的 this 原理是什么?

    以下供参考: 创建一个新的对象; 将构造函数的 this 指向这个新对象; 为这个对象添加属性、方法等; 最终返回新对象。 以上过程,也可以用代码表述: var obj = {} obj....场景 5:箭头函数中的 this 指向 箭头函数使用this不适用以上标准规则,而是根据外层(函数或者全局)上下文作用域来决定。...我们看 bar 函数本身是通过 bind 方法构造的函数,其内部已经对将 this 绑定为 obj1,它再作为构造函数,通过 new 调用时,返回的实例已经与 obj1 解绑。...由于 foo() 的 this 绑定到 obj1,bar(引用箭头函数)的 this 也会绑定到 obj1,箭头函数的绑定无法被修改。...如果将 foo 完全写成箭头函数的形式: var a = 123 const foo = () => a => { console.log(this.a) } const obj1 = {

    60130
    领券