Javascript 使原型方法根据上下文表现不同

Javascript 使原型方法根据上下文表现不同,javascript,Javascript,我有一个JavaScript“类”,它包含一个方法,bar(),我希望根据上下文的不同,它的行为会有所不同 换句话说,根据我实例化blah的页面,我希望bar()做不同的事情 你在这里建议什么方法?我的第一个想法是blah构造函数中的依赖项注入 function blah(){ } blah.prototype.foo = function(){ bar(arguments); }; 下面是一个示例,其中使用相同的方法更新了bar: 通过阅读你的小提琴,在我看来,你没有错。。。在构造

我有一个JavaScript“类”,它包含一个方法,
bar()
,我希望根据上下文的不同,它的行为会有所不同

换句话说,根据我实例化
blah
的页面,我希望
bar()
做不同的事情

你在这里建议什么方法?我的第一个想法是
blah
构造函数中的依赖项注入

function blah(){
}

blah.prototype.foo = function(){
    bar(arguments);
};
下面是一个示例,其中使用相同的方法更新了
bar
: 通过阅读你的小提琴,在我看来,你没有错。。。在构造函数中使用注入可以被认为是一种良好的做法

顺便说一下,还有其他方法可以满足你的需要。 例如,如果<代码> bar >代码>依赖项仅由<代码> FoO 方法要求,您可以考虑将其作为回调传递,这使得该事件更加封装并隐藏了对类上下文其余部分的依赖性:

函数Blah(){};
Blah.prototype.foo=函数(cb,数据){
console.count('foo');
控制台日志(cb);
返回cb(数据);
};
var-example=newblah();
//并以这种方式使用它:
example.foo(
函数(数据){返回1+数据;},
55
);
//或
example.foo=example.foo.bind(例如,函数(数据){returndata+1;});
例如foo(4);

例如:foo(3);
你能提供额外的信息吗,例如,你期望的一些不同的行为?@Hitmands当然,等一下,你能把所有行为相关的数据传递到
blah
constructor吗?@Hitmands这里是一个同一方法的不同实现的例子@hindsmost Yes,这就是我在最后一句话中提到的:)我想这是获取上下文的方法。上下文只是这个所指内容的问题。我想你误解了这个问题。我不认为OP是指
这个
上下文