javascript 中 apply(或call)方法的用途----对象的继承
一直以来,我的理解就是 js中的Function.apply(或者是Function.call)方法是来改变Function 这个函数的执行上下文(excute Context),说白了,就是改变执行时函数所处的作用域,
最直接的就是影响到 this 这个预定义的变量的值。!!Function.apply(obj, arguments),就是改变 function 的执行环境为 传入的obj 对象,即 Funtion 内部的this 会被改变为 obj.
下面的这个例子是搜索别人的例子的。
先看个例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function Person(name,age,grade){ //定义一个类,人类 this .name=name; //名字 this .age=age; //年龄 this .sayhello= function (){alert(grade)}; } function Student(name,age,grade,school){ //学生类 Person.apply( this ,arguments); for ( var i in arguments){alert(arguments[i])} this .grade=grade; //年级 this .school=school; //学校 } stu = new Student( 'yuanshao' ,26, 'university' , 'Huaqiao' ) stu.sayhello(); //这样stu就有了 Person构造器中的sayhello()方法。 |
解释一下:
apply方法能劫持另外一个对象的方法,继承另外一个对象的属性
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)
再看个例子:
1 2 3 4 5 6 7 | alert(Math.max(5,8,9,11)) //8 可以 ———————————— var arr=[5,7,9,1] alert(Math.max(arr)) // 这样却是不行的。 —————————————————————— var arr=[5,7,9,1] alert(Math.max.apply( null ,arr)) // 这样却行的。一定要这样写 |
分类:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现