JavaScrip的call()方法和apply()方法使用
2014-02-25 14:38
369 查看
对于apply和call两者在作用上是相同的,但两者在参数上有区别的。
对于第一个参数必须是一个对象,但对第二个参数:apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
语法:B.方法名.call(A,var1,var2,var3)
B.方法名.apply(A,[var1,var2,var3])
含义:A对象调用B对象的某个方法,A对象可以没有定义B对象要调用的那个方法,参数表示方法名所使用的参数。
样例:
本文出自 “IT技术学习与交流” 博客,谢绝转载!
对于第一个参数必须是一个对象,但对第二个参数:apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。
语法:B.方法名.call(A,var1,var2,var3)
B.方法名.apply(A,[var1,var2,var3])
含义:A对象调用B对象的某个方法,A对象可以没有定义B对象要调用的那个方法,参数表示方法名所使用的参数。
样例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>DojoSample1</title> <script type="text/javascript" src="dojo.js"></script> <script language="javascript"> function Dog(sound){ this.sound = sound; this.talk = function (name){ alert("this.soung返回值是:"+this.sound+";Dog的名字是:"+name); } } function Cat(sound){ this.sound = sound; this.talk = function (name){ alert("this.soung返回值是:"+this.sound+";Cat的名字是:"+name); } } var dog = new Dog("狗"); dog.talk("小狗狗"); //this.soung返回值是:狗;我的名字是:小狗狗 var cat = new Cat("猫"); cat.talk("小猫猫"); //this.soung返回值是:猫;我的名字是:小猫猫 cat.talk.call(dog,"狗使用猫的方法");//this.soung返回值是:狗;Cat的名字是:狗使用猫的方法 dog.talk.call(cat,"猫使用狗的方法");//this.soung返回值是:猫;Dog的名字是:猫使用狗的方法 </script> </head> <body> </body> </html>
本文出自 “IT技术学习与交流” 博客,谢绝转载!
相关文章推荐
- android中的国际化
- android中Invalidate和postInvalidate的区别
- Unity3d 碰撞检测
- ios之AFN
- IOS开发/iphone开发震动与播放声音Demo
- iphone app 的图标上被自动添加一层半透明遮罩(玻璃效果),小米3这样的高分屏icon不生效,怎么破?
- Android adb命令总结
- Android彩信发送
- 关于源码编译apk
- Android开发教程 强制横竖屏代码
- Android Support v4,v7,v13之间的区别
- [Unity3d]安卓无法加载assetbundle的问题
- android发送短信代码(短信内容超长处理)
- [Unity3d]安卓无法加载assetbundle的问题
- Android 关机解析
- IOS开发笔记(5)程序异常crash捕获与拦截
- Unity3D基础学习之AssetBundle 资源包创建与加载
- Android图片,PNG还是JPG?用哪种?
- Android Broadcast Intents and Broadcast Receivers
- 小鬼学cocos2dX笔记01——创建精灵动画(二)