js的call()方法
// ① 当函数中没有this时,call()、apply()和直接执行没有区别 function fn(){ console.log("aaa") } fn() // aaa fn.call() // aaa ----fn是函数,函数也是对象,对象调用call()方法 fn.apply() // aaa
// ② call改变this指向,this由原来的指向改为指向小括号内的对象 function fn(){ this.a=1; this.b=2; } var obj={}; fn.call(obj) // fn()函数执行的时候,this是window,也就是给window添加了两个全局变量。这里用call改变了this指向,this由原来的window指向了obj,也就是说,这里的fn()函数执行的时候,其实是执行了obj.a=1;obj.b=2 console.log(obj) // {a: 1, b: 2}
// ③ call()传参是一个一个地传,apply()是第二个参数为一个数组 function fn(name,age){ this.name=name; this.age=age; } var obj={}; fn.call(obj,"wql",23); console.log(obj) // {name: "wql", age: 23}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结