我不確定我是否接近這個最糟糕的方式,但我真的很想理解爲什麼會發生這種情況。`這個`返回父對象的值,而不是當前函數
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