Javascript 未捕获类型错误:对象没有方法';执行官';

Javascript 未捕获类型错误:对象没有方法';执行官';,javascript,jquery,object,prototype,hasownproperty,Javascript,Jquery,Object,Prototype,Hasownproperty,我正在使用下面的代码,它工作得很好,但是当我同时尝试使用JQuery时,我得到了下面的错误,我正在阅读一些帖子,我认为问题是不可能在不检查hasOwnProperty()的情况下扩展Object.prototype,但我不知道如何解决这个问题,有人能帮我一下吗 代码: 错误: Uncaught TypeError: Object function () { var i, newObj = (this instanceof Array) ? [] : {}; for (i in t

我正在使用下面的代码,它工作得很好,但是当我同时尝试使用JQuery时,我得到了下面的错误,我正在阅读一些帖子,我认为问题是不可能在不检查hasOwnProperty()的情况下扩展Object.prototype,但我不知道如何解决这个问题,有人能帮我一下吗

代码:

错误:

Uncaught TypeError: Object function () {
    var i, newObj = (this instanceof Array) ? [] : {};
    for (i in this) {
        if (i === 'clone') {
            continue;
        }
        if (this[i] && typeof this[i] === "object") {
            newObj[i] = this[i].clone();
        } else {
            newObj[i] = this[i];
        }
    }
    return newObj;
} has no method 'exec' 

将以下函数添加到克隆对象:

Object.prototype.clone.exec=function() {
    //your codes
};

在JSFIDLE上,您也遇到了错误?我建议不要将该方法放在
Object.prototype
上。而是将其作为方法放在
对象上
,这样它就不会被继承,并将要克隆的对象作为第一个参数传递
Object.clone(foo)
@Dvir:jsFiddle与任何事情都有什么关系?尽量不要修改内置原型,尤其是对象和数组。在这里,对象几乎是所有内容的基础,所以您所扩展的内容也将适用于数组,但您可以尝试使用ecma5对象定义属性,并将此属性的enumerable设置为false。试试这个小提琴谢谢PSL修复了这个错误!
Object.prototype.clone.exec=function() {
    //your codes
};