9月30日のbrazilさんのコメントのご指摘を、関数にするなら、たぶんこんな感じでしょう、たぶんだけど。
function injectFeatures(targetScope, moduleName /*, rest args*/) {
// targetScope:object
// moduleName:stringif (!targetScope || !moduleName) return;
// save JSAN.globalScope
var savedScope = JSAN.globalScope;
// setup
JSAN.globalScope = targetScope;
var args = [];
for (var i = 1; i < arguments.length; i++) {
args.push(arguments[i]);
}
// call JSAN.use()
JSAN.use.apply(null, args);
// restore JSAN.globalScope
JSAN.globalScope = savedScope;
}
targetScopeは任意のオブジェクトです。moduleNameは、JSANのモジュール名を表す文字列。これは、最初からmixin用モジュールとして書かれてないと、うまくいかないかもしれません。