我正在设置一个小助手功能,如下所示:
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 发生冲突?或者可能是更好的方法?(本国的?)。谢谢。