如何在Snap中扩展Set对象

时间:2014-12-16 17:16:12

标签: snap.svg

我正在尝试将大量代码从Raphael转换为Snap。 我遇到了很多问题 - 我会为每个问题提出1个问题,以避免线程混淆。

我有很多关于Raphael toFront方法的电话。 Snap中缺少此方法,但我找到了一个建议的实现:

Snap.plugin(function (Snap, Element, Paper, glob) {
    var elproto = Element.prototype;
    elproto.toFront = function () {
        this.appendTo(this.paper);
        return this;
    };
    elproto.toBack = function () {
        this.prependTo(this.paper);
        return this;
    };
});

这对于Elements来说非常好,但是我发现我的大多数toFront调用都是在集合中。有没有办法扩展Snap集?

1 个答案:

答案 0 :(得分:1)

我有完全相同的要求,并设法通过@Ian所说的经典原型扩展了Set


// example function (forEach reversed)
function revForEach(callback, thisArg)
{
    for (var i = this.items.length - 1, ii = 0; i >= ii; i--)
    {
        console.log(i);
        if (callback.call(thisArg, this.items[i], i) === false)
        {
            return this;
        }
    }
    return this;
}

// extend Snap Set class
Snap.Set.prototype.revForEach= revForEach;