古いJavaScriptファイルの1つをrequireJSと互換性があるように移植しています。これは以前のコードの外観です。
// effect.js
(function(exports){
// shorthand
exports.effect = function(selector) {
return new Effect(selector);
};
// init
exports.Effect = function(selector){
this.target = document.getElementById(selector);
};
Effect.prototype.run = function(){
alert('halo');
};
})(this);
//invoke it with
effect('box').run();
requireJSと互換性を持たせようとしました:
// effect.js
define(function(exports){
// Shorthand
exports.effect = function(selector) {
return new Effect(selector);
};
// init
exports.Effect = function(selector){
alert('halo');
this.target = document.getElementById(selector);
};
Effect.prototype.run = function(){
alert('halo');
};
}
// require js
require([
'effect.js'
],function(Effect){
effect('box').run();
})
上記のコードは実行されません。effect('box').run() の省略形を実行するだけで同じ結果を得るにはどうすればよいですか。