自我的实例

时间:2013-01-29 16:53:41

标签: javascript requirejs

// 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。有什么建议如何避免这种耦合? 顺便说一下:我使用Steffen Rusitschka中基于原型的帮助器来构建我的类

1 个答案:

答案 0 :(得分: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;
});