使用ko在IE8中__proto__

时间:2016-06-15 08:01:16

标签: javascript knockout.js internet-explorer-8

我正在寻找一种安全的方法,使现有的函数成为instanceof另一个函数。

我在此处读到IE8不支持__proto__https://stackoverflow.com/a/12431941/665261

我读到淘汰赛js支持IE8:http://knockoutjs.com/documentation/browser-support.html

我使用__proto__找到了淘汰赛:https://github.com/knockout/knockout/blob/241c26ca82e6e4b3eaee39e3dc0a92f85bc1df0c/src/utils.js#L21

淘汰怎么能使用__proto__然后在IE8上运行?

1 个答案:

答案 0 :(得分:1)

  

淘汰怎么能使用__proto__然后在IE8上运行?

因为它检测到正在运行的浏览器是否支持__proto__,并且仅在支持它时才使用它。

在您链接的链接之后只需几行即可找到:

var canSetPrototype = ({ __proto__: [] } instanceof Array);

...在定义对象时进一步向下:

setPrototypeOfOrExtend: canSetPrototype ? setPrototypeOf : extend,

然后KO使用setPrototypeOfOrExtend,具体取决于是否支持__proto__