js怎么可以访问外围对象的this方法

js怎样可以访问外围对象的this方法
例如对象中某个button对象,
button.onclick = function() {
//这里想要调用外围对象的某个方法
  //此时this指代的是button对象,而不是外围对象。这里不能使用this.方法名
}
我现在知道的是,可以将外围对象赋值给一个临时变量,然后通过临时变量.方法名来调用,不知道是否有更直接的方法,不需要使用临时变量就能调用了。
------解决方案--------------------
我要打某个人的电话

打电话(某人--》电话号)


我怎么知道某人的电话号?
1)我就是知道  他的电话就在我的小本子上写着(好比一个局部变量  var phone=xxxx)
2)我当然知道 他是名人 他的电话资料直接公开  所有人都知道(好比一个全局变量  window.某人.phone)
3)我不知道 但是我朋友知道(好比  utils.getPhone())
4)我不知道 我没记录他的电话 他的资料没有公开  我认识的人也没他的电话

能不能访问 好像 也只有这样了

 



------解决方案--------------------
button.onclick = $.proxy(function() {
//这里可以直接用this访问外围对象
}, this);

------解决方案--------------------

if(Function.prototype.bind){
Function.prototype.bind = function(context){
if(arguments.length<2&&context==void 0){
return this;
}
var _method=this,args=[].slice.call(arguments,1);
return function(){
return _method.apply(context,args.concat.apply(args,arguments));
}
}
}
button.onclick = function(){
//this === "外围变量";
}.bind("外围变量");

------解决方案--------------------
引用:
我要打某个人的电话

打电话(某人--》电话号)


我怎么知道某人的电话号?
1)我就是知道  他的电话就在我的小本子上写着(好比一个局部变量  var phone=xxxx)
2)我当然知道 他是名人 他的电话资料直接公开  所有人都知道(好比一个全局变量  window.某人.phone)
3)我不知道 但是我朋友知道(好比  utils.getPhone())
4)我不知道 我没记录他的电话 他的资料没有公开  我认识的人也没他的电话

能不能访问 好像 也只有这样了

 
答的好。
这样不行吗?
button.onclick = function() {
//这里想要调用外围对象的某个方法
  //此时this指代的是button对象,而不是外围对象。这里不能使用this.方法名
}
 (function (me) {
      me.方法//这个指的就是外面的this吧?
    })(this);