发布文章

您的位置:首页 -网站建设 - 内容


本周排行

最新更新


javascript apply方法应用

2008-9-1
  

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)


如一

来源:www

收藏本页 关闭窗口