0

条件:

1) 次のパターンを使用するレガシー コードが多数あります。

base.js

var Base = function(config) {
    var that={};
    that.doThing1=function(){};
    that.doThing2=function(){};
    return that;
}

child.js

var Child = function(config) {
    var that=Base;
    that.doStuff1=function(){that.doThing1();};
    that.doThing2=function(){};
    return that;
}

2) これに関する最も重要なことの 1 つは、それがレガシー コードであり、それが多数あるということです。そのため、すべてをリファクタリングして別のパターンを使用することは、今のところまったく問題外です。

3)現在のプロジェクトでバックボーンに沿ってrequire.jsを使用しようとしているため、「ベース」依存関係を必要とする子クラスがあります。

これは私が今いる場所ですが、機能していません:

require('Base'), function(Base) {
    var Child = function(config) {
        var that=Base;
        that.doStuff1=function(){that.doThing1();};
        that.doThing2=function(){};
        return that;
    }
    return Child;
}

質問:

このパターンをセットアップして、従来の依存関係を非同期に取得する require() をラップして、バックボーン クラスに子を require() できるようにするにはどうすればよいですか?

4

1 に答える 1

2

さて、これはそれを行うようです。私を投げたのは-base.jsで、クラスの名前がそこにないことに注意してください。代わりに、require.config()で名前を付けました。

base.js

define(function() {
    return function(config) {
        var that={};
        that.doThing1=function(){};
        that.doThing2=function(){};
        return that;
    };
});

child.js

define(['Base'], function(Base) {
    return function(config) {
        var that=Base(config);
        that.doStuff1=function(){that.doThing1();};
        that.doThing2=function(){};
        return that;
    };
});
于 2012-11-07T23:29:12.370 に答える