Let's start with the obvious closure-based approach:
function mk_displayAccountTable(inputField, resultRegion) {
return function (accounts, exception) {
if (exeption) return alert(exception.msg);
var headings = ["Account ID", "First Name", "Last Name", "Balance"];
var i, account, rows = [];
for(i=0; i<accounts.length; i++) {
account = accounts[i];
rows.push([account.accountID, account.firstName,
account.lastName, account.prettyAccountBalance]);
}
var table = getTable(headings, rows);
htmlInsert(resultRegion, table);
};
}
function customerTable(inputField, resultRegion) {
var inputs = commaStringToArray(getRawValue(inputField));
rpcClient.rpcTester.getAccounts(
mk_displayAccountTable(inputField, resultRegion),
inputs);
}