向对象添加新函数

时间:2012-07-05 13:37:06

标签: javascript

如果我有:

  function myFunc(a)
  {
    if(! (this instanceof myFunc) ) return new myFunc(a);
    this.myVar = "FOOBAR";
  }

如何让它发挥作用? :

  myFunc(function() { alert(this.myVar )}); // output must be "FOOBAR";

1 个答案:

答案 0 :(得分:3)

使用a致电this

  function myFunc(a)
  {
    if(! (this instanceof myFunc) ) return new myFunc(a);
    this.var = "FOOBAR";

    a.call(this); // <-- Added this line
  }

  myFunc(function() { alert(this.var)}); // output must be "FOOBAR";

DEMO:http://jsbin.com/uferif/