我是javascript/nodejs的新手,我正在尝试清理它的代码。清理Javascript/Nodejs代码
我正在使用async nodejs库来处理使代码的异步部分更容易。
现在的代码如下所示:
Object.prototype.method = function(){
var self = this;
// bunch of code
async.forEach(self.someArr, function(someObj, callback){
self.somefunc(someObj.someProp, function(err, aNewObj) {
if (err) {
return callback(err);
}
self.someOtherArr.push(aNewObj.someOtherProp);
callback();
});
}, callback);
}
但是,我想和另一个名为功能上对象的原型也被定义来代替匿名函数。由于代码的结构化方式,我不知道如何创建一个新函数来传入async.forEach
,同时保留正确的self
值。
我想要什么它看起来像:
AnObject.prototype.method = function(){
var self = this;
// bunch of code
async.forEach(self.someArr, self._newMethod, callback);
}
AnObject.prototype._newMethod = function(someObj, callback){
var self = this;
self.somefunc(someObj.someProp, function(err, aNewObj) {
if (err) {
return callback(err);
}
self.someOtherArr.push(aNewObj.someOtherProp);
callback();
});
}
但是,这显然并不因为上下文变化的工作。
如果命名的函数在内部也使用变量'self',它应该没有区别。唯一可能有趣的是如果它使用'this'。 – 2013-02-09 00:07:45
我更新了我的问题,使其更加清晰。命名的函数也使用self。 – 2013-02-09 00:58:09