我不确定我是否接近这个最糟糕的方式,但我真的很想理解为什么会发生这种情况。`这个`返回父对象的值,而不是当前函数
var sessionMethods = {
isOnline: function (s) { /* */ },
isOffline: function (s) { /* */ },
};
function defaultCallback() {
if (typeof arguments[0] !== 'object') {
arguments[0] = {};
} else if ('session' in arguments[0]) {
arguments[0] = arguments[0].session;
}
// Here this has for value session object !!
// i want to access session[currentFunction].callback
return this.callback.apply(this, arguments);
}
var session = {};
for (var key in sessionMethods) {
session[key] = defaultCallback;
session[key].callback = sessionMethods[key];
}
我的最终目标是要能够通过添加某种中间件的功能,将转换如果nescessary请求之间的会话,也许做更多的东西以后,以避免冗余代码。
但是,如果我可以undrestand多一点如何this
工作,那将是伟大的!
是否这样? http://jsbin.com/qeqipekudanu/1/ – 2014-10-09 10:28:49
是的这项工作,我想是时候阅读一些关于'bind()'的文档:) – kigiri 2014-10-09 10:39:44