2013-10-06 38 views
0

我使用下面的代碼,它運行良好,但是當我嘗試在同一時間使用JQuery時,然後出現下面的錯誤,我正在讀取一些帖子和我認爲的問題是,沒有可能擴大Object.prototype沒有檢查hasOwnProperty(),但我不知道如何解決這個問題,有人可以幫我一把嗎?Uncaught TypeError:對象沒有方法'exec'

代碼:

Object.prototype.clone = 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; 
    }; 

錯誤:

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' 
+0

上的jsfiddle你有錯誤也? – Dvir

+2

我建議不要將方法放在Object.prototype上。取而代之的是將它作爲一個方法放在Object中,以便它不被繼承,並將要克隆的對象作爲第一個參數傳遞。 'Object.clone(foo)' – user2736012

+1

@Dvir:jsFiddle與什麼有關? – user2736012

回答

0

以下函數添加到您的克隆對象:

Object.prototype.clone.exec=function() { 
    //your codes 
}; 
相關問題