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.
    }
});

では、(おそらく) Easel との衝突を引き起こさない、このような Object プロトタイプを作成するためのより良い方法はありますか? それとも全体的により良い方法ですか?(ネイティブ?)。ありがとう。

4

0 に答える 0