您的位置:首页 > 移动开发

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对象要调用的那个方法,参数表示方法名所使用的参数。

样例:
<!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技术学习与交流” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: