为什么Google Chrome仍然支持__proto__?
答
在语言/框架中最难的事情之一就是删除不推荐的功能。世界上仍然有大量的代码取决于这个特性。删除它将打破网站。 Chrome显然已经考虑了维护成本与去除和选择维护的痛苦/成本。
+6
Chrome支持'document.all'!谈论一个弃用的功能:) – epascarello
答
__proto__
不仅被弃用,它实际上从来不是标准的一部分。从Chrome中删除该功能意味着某些页面将不再在Chrome中运行,并且没有理由打破这些页面。
该功能作为'getPrototypeOf'函数添加到JavaScript(ECAMScript 5)中,新的JavaScript程序应该使用该功能。
答
A proto伪属性已包含在ECMAScript草案的§B.3.1中。 6规范(注意规范编码了实现中已有的内容以及目前可能依赖的网页)。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/proto
可能是出于兼容性原因。 – SLaks
我个人尝试在其位置使用Object.getPrototypeOf()来获取。不幸的是,目前没有像'__proto__'提供的设置方式。 – user113716
不支持'getPrototypeOf'的浏览器不支持它的浏览器可能是:function(obj){return obj .__ proto__ || obj.constructor.prototype; };'。不完美,但应涵盖大多数情况。 – user113716