javascript函数中的自动重写上下文

javascript函数中的自动重写上下文,javascript,function,this,Javascript,Function,This,考虑到本规范: function a() { alert(this.variable); } b = new function() { this.variable = "abc"; a.call(this); } 有没有一种方法可以自动覆盖上下文而不是使用call方法? 像这样(不工作): 提前谢谢。如果你想a访问b的这个,你必须明确地传递这个,也就是说,Javascripts库通常为你提供一种方法,比如Prototype.js有“bind”,而不是a()。但在任何情况下都必须由

考虑到本规范:

function a() {
  alert(this.variable);
}

b = new function() {
  this.variable = "abc";
  a.call(this);
}
有没有一种方法可以自动覆盖上下文而不是使用call方法? 像这样(不工作):


提前谢谢。

如果你想
a
访问
b
这个
,你必须明确地传递
这个
,也就是说,Javascripts库通常为你提供一种方法,比如Prototype.js有“bind”,而不是
a()。但在任何情况下都必须由调用代码完成:函数本身可能以不同的方式调用,并且没有对调用它的上下文的特权访问。将此传递给函数不是一个好的解决方案,在我的第一个示例中,我使用call方法验证函数a中的上下文,我想要的是通过查看调用方函数上下文来自动转换上下文。@user-你可能会想使用不同的语言。你在开玩笑吗?或者我不明白你的回答。我想你还没有理解我的第一个问题。
function a() {
  var _this = Function.caller;  
  alert(_this.variable);
}

b = new function() {
  this.variable = "abc;
  a();
}