javascript apply用法

funObj.apply([thisObj[,argArray]])

 

应用某一对象的一个方法,用另一个对象替换当前对象。

functionObj的方法执行时,函数中的this对象会被thisObj替换掉。

 

thisObj 可选项。将被用作当前对象的对象。

argArray 可选项。将被传递给该函数的参数数组。

 

//apply在对象继承方面的应用,不使用prototype,隐式的将父对象属性赋给了子对象
function par(name)
{
this.parname=name;
}
function child(chname,parname){
this.chname=chname;
par.apply(this,new Array(parname));
};

 var o=new child("john","Mr john");
alert(o.parname+";"+o.chname);

//apply可以在通用的方法调用方面进行使用
window.onunload=function()
{
alert("unload event is fired!");
}

 function sayBye(name,toName)
{
alert(name+" says bye to "+toName);
}
function sayEndBiz(name,toName,content)
{
alert(name+" ends his talk about "+content +" with "+toName);
}

 function addTo(args,func)
{
var oldHandler=window.onunload||function(){};
window.onunload=function()
{
func.apply(window,args);
oldHandler.apply(window, args);
}
}

addTo(new Array("John","everyone"),sayBye);
addTo(new Array("John","everyone","deveopment strategy of the company"),sayEndBiz)
posted @ 2011-10-09 21:25  满天星光  阅读(1476)  评论(0编辑  收藏  举报