手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
call() bind() apply()改变this指向
call() bind() apply()改变this指向
作者:
扶得一人醉如苏沐晨
| 来源:发表于
2022-06-04 07:02 被阅读0次
1、call 函数的用法:
fn.call(obj,1,2);
A、call() 函数中的第一个参数表示:想让 fu的this 指向的对象 (obj);
B、call() 函数中的第二及以后参数表示:传进fu的实参;
2、call 函数的功能:
1)让函数立执行;
2)可改变 this 的指向;
3)可实现继承问题;
1.函数调用
2.改变this指向
3)可实现继承问题;
2、apply函数的用法
apply作用
作用有三个,跟它的入参有关。
让函数立即执行
改变this指向。
将数组入参变为一般入参。
可以这么记,当apply调用时,调用apply的函数是谁?(person.fullName),把这个函数分享给person1,让person1去调用。
将
数组
入参变为一般入参
这里说一点,就是这个作用就是apply和call的最大区别了。
就是apply的第二个参数接受的是数组,call不是。
比如当一个函数入参是非数组,而你目前拥有的是数组,你不想处理数组再进行入参的输入,你就可以使用apply。
需要注意的是这里的第一个值为null时,
在 “JavaScript 严格模式”下则它将成为被调用函数的所有者(对象)也就是没改变指向,在“非严格”模式下,它成为全局对象。
因为我们只是测试第二个入参作用,因此,第一个入参null就用来占位,就算改变了指向我们也没有用到它。
以下的例子可以加深一下你对apply和call区别的理解。
3、bind函数的用法()
bind()方法创建一个新的函数(称为绑定函数), 当被调用时,将其this关键字设置为提供的值,在调用新函数时,在任何提供之前提供一个给定的参数序列。
需要注意的是bind 是返回新的函数,以便稍后调用;apply 、call 则是立即调用原函数 。
fun.bind(thisArg,arg1 ,arg2)
bind的应用
1)可以对一个函数预设初始参数:
2)配合 setTimeout
setTimeout 是一个场景,很容易把 this 指向 window,下面的代码是有问题的,render 方法中的 this 其实被指向了 window!我们可以用 bind,
显式地把 this 绑定到回调函数以便继续使用该对象。
window.setInterval(canvas.render.bind(canvas), 1000);
3)js bind的多次绑定只有第一次是有效的
相关文章
网友评论
本文标题:
call() bind() apply()改变this指向
本文链接:
https://www.haomeiwen.com/subject/ybxzprtx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
摄影
故事
互联网
读书
旅行
热点阅读
2022-05-31
诗—错觉
小说之穿越降临2
固执己见的后果(二)
【暑假安排】“给爸爸/妈妈的一封信”接龙活动
夜茶
破密:中国密码战史(13)
坚强一点,勇敢一点
孩子发脾气怎么办?
平常的上午
网友评论