0
// util/model.js

define(['util/class'], function(classCtor) {
    return classCtor.create({
        set: function(key, value) {
            // this doesn't work, because self is pointing to window
            if (value instanceof self) {
                // do Something
            }
        }
    });
});

これは、すべてのエンティティの基本クラスである必要があります。私のモジュールはRequireJSスタイルで記述されているため、次の回避策を使用できます。

if (value instanceof require('util/model'))

これは正常に機能しますが、私のコードはModuleNameに結合されています。この結合を回避する方法について何か提案はありますか?ちなみに、私はSteffenRusitschkaのプロトタイプベースのヘルパーを使用してクラスを構築しています

4

1 に答える 1

0

匿名クラスに変数を使用できます。

define(['util/class'], function(classCtor) {
    var self = classCtor.create({
        set: function(key, value) {
            // self is the class now:
            if (value instanceof self) {
                // do Something
            }
        }
    });
    return self;
});
于 2013-01-29T16:57:03.130 に答える