javascript继承方式之apply()方法
apply()方法也是javascript继承方式之一,和call()方法有些类似.
apply()方法有两个参数,用作this的对象和要传递函数的参数的数组.根call()的区别就是传递的参数,call()传递的是单个或者多个参数,而apply()传递的是参数的数组,只有一个参数也就是参数数组,但数组的长度不定.
举例:
function show_name(str)
{
alert(str+this.name);
}
var obj = new Object;
obj.name = "javascript继承方式之apply()方法";
show_name.apply(obj,array("测试名称:"));//输出:"测试名称:javascript继承方式之apply()方法"学习www.网for站asp制.cn作
如果替换为对象冒充方法,如下
function A(name)
{
this.name = name;
this.show_name = function(){alert(this.name);}
}
function B(name)
{
//this.new_method = A;
//this.new_method(name);
//delete this.new_method;
//吧上面的对象冒充方法解释掉
A.apply(this,arguments);//这样就替换成了新的apply方法.arguments表示参数数组
}
var obj = new B("apply方法名");
obj.show_name()//输出"apply方法名"
只有超类的参数顺序根子类中的参数顺序完全一致时才可以用arguments传递参数,否则必须创建一个新的数组来传递参数