次のような小さなヘルパー関数を設定していました。
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 プロトタイプを作成するためのより良い方法はありますか? それとも全体的により良い方法ですか?(ネイティブ?)。ありがとう。