Javascript可以做到这一点

时间:2010-06-30 19:50:47

标签: javascript

制作本:

/*this can't run*/
var o = {first:1};
function f(arg,o){
   /*
    can i do something make this function's this=o
   */
   alert(arg+this.first);
}
f(2,o);

等于:

var o = {
  first:1,
  f:function(arg){
    alert(arg+first);
  }
}
o.f(2);

我知道我们可以使用它:

f.apply(o,1);

但我想处理f中的所有事情:

function f(arg,o){
    /*magic*/
    alert(arg+this.first);
}

1 个答案:

答案 0 :(得分:3)

这就是你的意思:

var o = 
{ 
  first : 1, 
  f : function(arg)
  { 
    alert(arg + this.first);
  }
}