2011-09-28 117 views
2

__proto__已棄用。爲什麼Chrome瀏覽器等大瀏覽器仍在使用它?有沒有計劃轉儲它?爲什麼Google Chrome仍然支持__proto__?

+0

可能是出於兼容性原因。 – SLaks

+0

我個人嘗試在其位置使用Object.getPrototypeOf()來獲取。不幸的是,目前沒有像'__proto__'提供的設置方式。 – user113716

+1

不支持'getPrototypeOf'的瀏覽器不支持它的瀏覽器可能是:function(obj){return obj .__ proto__ || obj.constructor.prototype; };'。不完美,但應涵蓋大多數情況。 – user113716

回答

6

在語言/框架中最難的事情之一就是刪除不推薦的功能。世界上仍然有大量的代碼取決於這個特性。刪除它打破網站。 Chrome顯然已經考慮了維護成本與去除和選擇維護的痛苦/成本。

+6

Chrome支持'document.all'!談論一個棄用的功能:) – epascarello

2

__proto__不僅被棄用,它實際上從來不是標準的一部分。從Chrome中刪除該功能意味着某些頁面將不再在Chrome中運行,並且沒有理由打破這些頁面。

該功能作爲'getPrototypeOf'函數添加到JavaScript(ECAMScript 5)中,新的JavaScript程序應該使用該功能。