javascript函数的call/bind/apply使用方法

javascript函数的call/bind/apply使用方法概述定义一个 function 然后使用 call 调用他函数当前函数 call 外部对象 参数 1 参数 2 通过 call 将当前函数中的 this 改变成了外部对象了 从而可以使用外部对象 例 定义一个无参数的函数 function s

欢迎大家来到IT世界,在知识的湖畔探索吧!

概述

定义一个function, 然后使用call调用他

函数

当前函数.call(外部对象,参数1,参数2,...)

欢迎大家来到IT世界,在知识的湖畔探索吧!

通过call 将当前函数中的this, 改变成了外部对象了,从而可以使用外部对象。

例: 定义一个无参数的函数

欢迎大家来到IT世界,在知识的湖畔探索吧!function sayHello(){ console.log("do something"); }

调用这个函数,没有任何问题,输出 do something

sayHello();

使用call进行调用,没有任何问题,输出 do something

欢迎大家来到IT世界,在知识的湖畔探索吧!sayHello.call();

有参调用

 function saveEntity3(email){ var userName = this.name; console.log("saveEntity3" + email); }

使用call进行调用的时候,第一个参数是对象,后面的其他参数

需要定义一个对象,方可进行传参

欢迎大家来到IT世界,在知识的湖畔探索吧! var user2 = { name:"小李", age:25 } 调用 saveEntity3.call(user2,'')

在saeEntity3中的this,从saveEntity3 被切换到了user2这个对象了。从而可以将外部的user2变成this了。通常用于外部的参数进行传递。

call的核心通过传递不同的对象改变了this的指向。

apply用法

call是顺序传

saveEntity3.call(user2,'')

apply使用数组传

欢迎大家来到IT世界,在知识的湖畔探索吧!saveEntity3.call(user2,[''])

bind用法

bind不会调用函数,会返回新的函数

var fun = saveEntity3.bind(user2,'') //调用 fun();

call与apply会调用函数,传参不一样

bind不会调用函数,形成新的一个函数 再进行调用。


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/88754.html

(0)
上一篇 1小时前
下一篇 59分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信