襄阳做网站公司中国设计之窗官方网站

news/2025/9/26 18:47:43/文章来源:
襄阳做网站公司,中国设计之窗官方网站,学校网站建设代码,网站建设优化过程中的优化策略对于 call / apply / bind 来说#xff0c;他们的首要目的是用于改变执行上下文的 this 指针。 call / apply 对 call / apply 的使用#xff0c;一般都如下#xff0c;用于改变执行环境的上下文。只是 call 接受的是一个一个的参数#xff0c;而 apply 则是接受的是一个参…对于 call / apply / bind 来说他们的首要目的是用于改变执行上下文的 this 指针。 call / apply 对 call / apply 的使用一般都如下用于改变执行环境的上下文。只是 call 接受的是一个一个的参数而 apply 则是接受的是一个参数数组。 const obj1 {a: 1,myFunc(var1) {console.log(this.a var1)} } const obj2 {a: 2 }const myFunc obj1.myFuncmyFunc(1) // NaN obj1.myFunc(1) // 2 myFunc.call(obj2, 1) // 3 myFunc.apply(obj2, [1]) // 3 bind bind 是 ES2015 出的一个方法也是用于改变函数内部的 this 指向。但不一样的是bind 方法不是直接执行的而是生成一个新的已被改变过的函数。 const obj1 {a: 1,myFunc(var1) {console.log(this.a var1)} } const obj2 {a: 2 }const myFunc obj1.myFunc const bindMyFunc1 myFunc.bind(obj1) const bindMyFunc2 myFunc.bind(obj2)myFunc(1) // NaN bindMyFunc1(1) // 2 bindMyFunc2(1) // 3 通过上面的例子就可以看出来bind 方法就可以生成一个新的 this 指向的 function。 手动写 bind 函数 仅仅作为简单实现的话我们仅需要注意改变 this 指向和预置参数即可。 function bind(fn, _this, ...args) {if(typeof fn ! function) {throw new Error(bind fn need to be function)}return function(...innerArgs) {return fn.apply(_this, [...args, ...innerArgs])} } 当然这个手动实现的 bind 方法是只实现了最主要的功能对函数的原型链和作为构造函数的方式都是没有考虑到的。这里可以参考 MSDN 的 polyfill 方法。 if (!Function.prototype.bind) {Function.prototype.bind function(oThis) {if (typeof this ! function) {// closest thing possible to the ECMAScript 5// internal IsCallable functionthrow new TypeError(Function.prototype.bind - what is trying to be bound is not callable);}var aArgs Array.prototype.slice.call(arguments, 1),fToBind this,fNOP function() {},fBound function() {// this instanceof fBound true时,说明返回的fBound被当做new的构造函数调用return fToBind.apply(this instanceof fBound? this: oThis,// 获取调用时(fBound)的传参.bind 返回的函数入参往往是这么传递的aArgs.concat(Array.prototype.slice.call(arguments)));};// 维护原型关系if (this.prototype) {// Function.prototype doesnt have a prototype propertyfNOP.prototype this.prototype; }// 下行的代码使fBound.prototype是fNOP的实例,因此// 返回的fBound若作为new的构造函数,new生成的新对象作为this传入fBound,新对象的__proto__就是fNOP的实例fBound.prototype new fNOP();return fBound;}; } 转载于:https://www.cnblogs.com/YikaJ/p/10683142.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高端网站建设设计公司排名做的网站

继上一篇博文,我们解决了多模块下扫描不到子模块的原因,建议先看上一个博客了解项目结构: springboot 多模块启动报错Field XXX required a bean of type XXX that could not be found. 接下来我们来解决swaggar异常的原因,我们成功启动项目…

【Linux】网络基础 - 实践

【Linux】网络基础 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &…

需求的系统规划 3

如何将系统的需求具体化、结构化 通过画业务流程图信息孤岛形成的原因、常用处理方式 1.人为原因:供应商不愿别人访问自己系统的数据,数据有特殊性,程序无法解读 2.编码差异:完全相同的数据,不同的软件系统采用不…

找人做网站毕业设计企信网企业信用信息系统

1.transformer的优化策略 1)GQA,减少推理过程中的KV缓存大小,增加上下文长度(KV 缓存(即 Key-Value 缓存)用于加速 Transformer 模型在推理过程中处理长序列时的计算。要减少 KV 缓存的大小) 2&…

430亿美元押注英国,Salesforce 加码 AI 投资

近日,英国与多家美国科技公司签署 “科技繁荣协议(Tech Prosperity Deal)”,宣布未来将有 430 亿美元 投入英国人工智能领域,目标是把英国打造为全球 AI 超级大国。 这笔投资是在此前 440 亿美元承诺的基础上再次…

C# 中 ref 和 out 的学习笔记

一句话搞懂区别​ref​:传进去的时候​必须有值,方法里可以改它,改完外面也能看到。 ​out​:传进去的时候​不用有值​(甚至不能有值),方法里​必须给它赋值,赋完值外面就能用。为什么需要它们? C# 默认是“…

NXP - 在MCUXpresso IDE中编译调试Smoothieware固件工程 - 思路 - 教程

NXP - 在MCUXpresso IDE中编译调试Smoothieware固件工程 - 思路 - 教程2025-09-26 18:37 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: aut…

C# 序列化三种方式

序列化是啥? 就是把一个 C# 对象(比如 Person、Order)变成一串能存文件、能发网络的“字符串”或“字节”。 反序列化就是反过来,把这串东西变回对象。 为啥要干这事?存到文件(比如保存游戏进度) 发给别的程序(…

网站标题一样高端品牌运动鞋

目录 一.简介 二.常用接口 三.实战演练 1.径向渐变 2.QSS贴图 3.开关效果 4.非互斥 一.简介 QRadioButton控件提供了一个带有文本标签的单选按钮。 QRadioButton是一个可以切换选中(checked)或未选中(unchecked)状态的选项…

织梦网站添加视频教程莱芜新闻电视台节目表

目录 1、divmod函数: 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:非风V非雨-CSDN博客 divmod函数在Python中具有广泛的应用场景,特别是在需要同时处理除法的商和余数的情况下。常见的应用场景有&a…

VMware+RockyLinux+ikuai+docker+cri-docker+k8s 自用 实践笔记(一) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

区别:Modbus RTU 和 Modbus TCP

区别:Modbus RTU 和 Modbus TCP Modbus RTU 常用函数,如下://打印数组数据 static void printArray(const QString& title, qint64 dataLen, const uint8_t* data) {QString strPrint;for (int i = 0; i < d…

记录安装机器/深度学习环境(conda、CUDA、pytorch)时的一些问题

1. 正确查看自己的CUDA版本CUDA分为两种,驱动API和运行API。 驱动API指的是显卡驱动支持的最高cuda版本,我们运行程序时用的是运行API。nvidia-smi显示的是驱动所能支持的最大运行API版本。 nvcc --version查看的是C…

详细介绍:大数据毕业设计选题推荐:基于Hadoop+Spark的全球能源消耗数据分析与可视化系统

详细介绍:大数据毕业设计选题推荐:基于Hadoop+Spark的全球能源消耗数据分析与可视化系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !importa…

5G车载市场新格局:国产崛起,从破局者到引领者的升维之战 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

python组合类型和组合可空类型

python组合类型和组合可空类型 漫思

深入解析:自动化接口框架搭建分享-pytest

深入解析:自动化接口框架搭建分享-pytestpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

手撕深度学习之CUDA并行规约算法(上篇):硬核揭秘200%性能提升的GPU优化之道,从硬件特性到算法实现的完整进阶指南

本文为CUDA并行规约系列文章的上篇,本系列将会介绍CUDA编程的一些基础软硬件知识,然后给出7种规约算法的实现,并从硬件的角度对它们进行分析和优化,最终给出一个开箱即用的模板代码。 本文主要介绍了CUDA编程的基础…

网络运营者中国seo第一人

1、ORACLE快速遍历树 2、join基表很大&#xff0c;性能问题 转载于:https://www.cnblogs.com/stevenlii/p/8631708.html

实战需求分析

需求获取的方法 1.制作调查问卷 2.单据分析(单据时客户填写的纸质单据) 3.报表分析(报表时客户对产品的反应的各种数据的整理) 如何分析报表:使用常识判断、听客户讲解、研习客户文档、研习电子表格公式