0

我正在设置一个小助手功能,如下所示:

if (!Object.prototype.__construct) {
Object.prototype.__construct = function() {
    if (typeof arguments[0] !== 'object' ||
        arguments.length === 0) return;
    for (var name in arguments[0]) {
        if (arguments[0].hasOwnProperty(name))
            this[name] = arguments[0][name];
    }
}}

if (!Object.prototype.__)
    Object.prototype.__ = Object.prototype.__construct;

它是这样调用的:

function Foo(props) {
    this.__(props); // or this.__construct(props);
    ...
}
var foo = new Foo({a:1,b:2,c:3});

如您所见,它只是作为一个简单的构造函数。但是,当将它与 EaselJS 一起使用时,特别是SpriteSheet()我得到一个错误Uncaught TypeError: Cannot call method 'slice' of undefined。这是一段代码,说明了问题出现的位置:

var ss = new SpriteSheet({
    images: ...,
    frames: {
        ...
    },
    animations: {
        walk: [0, 1, "walk", 8] // <-- Error caused here.
    }
});

那么,有没有更好的方法来编写这样的 Object 原型,这不会导致(可能)与 Easel 发生冲突?或者可能是更好的方法?(本国的?)。谢谢。

4

0 回答 0