0

我想Kinetic.Shape用更多的属性和方法来扩展对象(每个其他形状都从该对象扩展)。

我尝试的是

Kinetic.Util.addMethods(Kinetic.Shape, {
  foo: 'bar'
});

所以说如果我创建了一个新Kinetic.Circle实例,它应该包含这个定义的属性(并且每个其他形状都应该这样做)。

new Kinetic.Circle(options).foo; // returns undefined
// should return 'bar'

我怎样才能实现这种行为?

4

1 回答 1

0

等待合并此拉取请求https://github.com/ericdrowell/KineticJS/pull/497。现在你可以这样做了——用这个替换 Kinetic.Util.extend 函数:

extend: function(child, parent) {
    function ctor() {
        this.constructor = child;
    }
    ctor.prototype = parent.prototype;
    var old_proto = child.prototype;
    child.prototype = new ctor();
    for (var key in old_proto) {
        if (old_proto.hasOwnProperty(key))
            child.prototype[key] = old_proto[key];
    }
    child.__super__ = parent.prototype;
}
于 2013-06-14T12:03:13.687 回答