本文实例讲述了javascript中call,apply,bind函数用法。分享给大家供大家参考,具体如下:

一.call函数
a.call(b);
简单的理解:把a对象的方法应用到b对象上(a里如果有this,会指向b)
call()的用法:用在函数上面
var Dog=function(){
this.name="汪星人";
this.shout=function(){
alert(this.name);
}
};
var Cat=function(){
this.name="喵星人";
this.shout=function(){
alert(this.name);
}
};
var dog=new Dog();
var cat=new Cat();
dog.shout();
cat.shout();
如果猫函数中没有shout方法,要达到一样的效果
var Dog=function(){
this.name="汪星人";
this.shout=function(){
alert(this.name);
}
};
var Cat=function(){
this.name="喵星人";
};
var dog=new Dog();
var cat=new Cat();
dog.shout();
dog.shout.call(cat);
cat.shout();
call的作用:函数可以复用
二、apply函数
var xh=
{
name:"小红",
job:"前端工程师"
};
var xm=
{
name:"小明",
job:"js工程师"
};
var xw=
{
name:"小王",
job:"html5工程师"
};
function myjob(gender,age,company)
{
alert(this.name+","+gender+",今年"+age+"岁,在"+company+"担任"+this.job);
}
myjob.call(xh,"女",24,"腾讯");
myjob.call(xm,"男",22,"新浪");
myjob.call(xw,"男",28,"网易");
call函数和apply函数功能一样,区别是第二个参数形式不一样,call传递多个参数,任意形式(传入参数和函数所接受参数一一对应),apply第二个参数必须是数组形式,如a.call(b,2,3); ==> a.apply(b,[2,3]);
var xh=
{
name:"小红",
job:"前端工程师"
};
var xm=
{
name:"小明",
job:"js工程师"
};
var xw=
{
name:"小王",
job:"html5工程师"
};
function myjob(gender,age,company)
{
alert(this.name+","+gender+",今年"+age+"岁,在"+company+"担任"+this.job);
}
myjob.apply(xh,["女",24,"腾讯"]);
myjob.apply(xm,["男",22,"新浪"]);
myjob.apply(xw,["男",28,"网易"]);
三、bind函数
call,apply和bind都可以“*”this,逼迫其指向其他对象
使用上和call,apply的区别,如
xw.say.call(xh); //对函数直接调用 xw.say.apply(xh); //对函数直接调用 xw.say.bind(xh)(); //返回的仍然是一个函数,因此后面需要()来调用
传参时可以像call那样
xw.say.bind(xh,"中央大学","一年级")();
由于bind返回的仍然是一个函数,所以也可以在调用时再进行传参
xw.say.bind(xh)("中央大学","一年级");
更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# javascript
# call
# apply
# bind
# JS中call()
# apply()
# bind()函数的区别与用法详解
# JS 函数的 call、apply 及 bind 超详细方法
# JavaScript函数之call、apply以及bind方法案例详解
# JS中call apply bind函数手写实现demo
# 中央大学
# 小王
# 腾讯
# 第二个
# 网易
# 仍然是
# 小明
# 新浪
# 小红
# 一个函数
# 直接调用
# 相关内容
# 多个
# 遍历
# 数据结构
# 给大家
# 用在
# 更多关于
# 所述
# 程序设计
相关文章:
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
建站之星Pro快速搭建教程:模板选择与功能配置指南
,sp开头的版面叫什么?
Swift中循环语句中的转移语句 break 和 continue
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
建站之星安装需要哪些步骤及注意事项?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
实例解析Array和String方法
如何在阿里云高效完成企业建站全流程?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
网站制作服务平台,有什么网站可以发布本地服务信息?
如何自定义建站之星模板颜色并下载新样式?
宝华建站服务条款解析:五站合一功能与SEO优化设置指南
如何用花生壳三步快速搭建专属网站?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
如何注册花生壳免费域名并搭建个人网站?
如何彻底删除建站之星生成的Banner?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何在Windows环境下新建FTP站点并设置权限?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
c# 在ASP.NET Core中管理和取消后台任务
如何访问已购建站主机并解决登录问题?
建站之星后台密码遗忘?如何快速找回?
招贴海报怎么做,什么是海报招贴?
官网自助建站平台指南:在线制作、快速建站与模板选择全解析
如何选择美橙互联多站合一建站方案?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何用wdcp快速搭建高效网站?
定制建站哪家更专业可靠?推荐榜单揭晓
建站之星导航菜单设置与功能模块配置全攻略
行程制作网站有哪些,第三方机票电子行程单怎么开?
如何配置WinSCP新建站点的密钥验证步骤?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
测试制作网站有哪些,测试性取向的权威测试或者网站?
建站之星备案是否影响网站上线时间?
如何在自有机房高效搭建专业网站?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
建站之星如何取消后台验证码生成?
电商平台网站制作流程,电商网站如何制作?
*请认真填写需求信息,我们会在24小时内与您取得联系。