2012-08-16 75 views

回答

-1

真正有用的

Extending Natives in Javascript

[編輯] 這不應該只顯示你可以,但如何以避免陷阱做到這一點。 :)

那麼擴展本機永遠沒關係嗎?

我已經描述了一些不增加原生原型的原因;你可能知道別人。您需要確定是否每個問題都將通過您的計劃擴展來解決,以及擴展是否會爲您的代碼庫增加功能和清晰度。

+0

@Downvoter你爲什麼downvote? – Zac 2012-08-16 18:20:11

0
  1. 如果未來版本的瀏覽器實現Array.prototype.remove(或者,也可以通過 自己的意願,因爲在升級到ECMAScript標準),其實施將通過我們的 習俗之一,它不僅將覆蓋效率較低(我們不能在方法優化服務中操縱瀏覽器引擎內部),但更重要的是,它們可能會有不同的非標準結果。

  2. 使用對象迭代週期擴展本地對象。參數如下所示:因爲for循環將訪問對象原型鏈中所有枚舉的 屬性,所以自定義本機屬性 將意外地包含在此類迭代中。

  3. 如果 碰巧定義了一個具有相同名稱的屬性,則Object.prototype的後代(即其原型不是顯式爲空的每個對象)都將失去對擴展屬性的訪問權限。

http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/