Javascript 对象原型对Easeljs的干扰

Javascript 对象原型对Easeljs的干扰,javascript,prototype,easeljs,Javascript,Prototype,Easeljs,我正在设置一个小助手函数,如下所示: 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].hasO

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

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()
我得到了一个
uncaughttypeerror的错误:无法调用未定义的
的方法“slice”。下面是一段代码,说明了问题的起因:

var ss = new SpriteSheet({
    images: ...,
    frames: {
        ...
    },
    animations: {
        walk: [0, 1, "walk", 8] // <-- Error caused here.
    }
});
var ss=新精灵表({
图片:。。。,
框架:{
...
},
动画:{

walk:[0,1,“walk”,8]//扩展
对象
原型是个坏主意。@zzzzBov您能详细说明一下或将我与一些参考资料联系起来吗?经过简短的搜索,我发现,“扩展Object.prototype‘是Verboten’出于某些或所有这些原因,JavaScript社区多年来一直认为Object.prototype扩展是禁忌……”基本上,如果您开始覆盖
Object.prototype
,您可以期待库(如jQuery)开始失败,查看你的代码的开发人员开始讨厌你。谢谢你的参考。我想也是出于同样的原因。但是这给我的小项目带来的便利真的很好。除了不这样做之外,还有什么解决办法吗,哈?