javascript - IE8 中的 __proto__ 使用 ko

标签 javascript knockout.js internet-explorer-8

我正在寻找一种安全的方法来使现有函数成为另一个函数的实例

我在这里读到 IE8 不支持 __proto__:https://stackoverflow.com/a/12431941/665261

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

我使用__proto__发现了 knockout :https://github.com/knockout/knockout/blob/241c26ca82e6e4b3eaee39e3dc0a92f85bc1df0c/src/utils.js#L21

knockout 使用 __proto__ 却可以在 IE8 上运行,这怎么可能?

最佳答案

How can it be that knockout uses __proto__ and yet works on IE8?

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

在您链接到的行之后,您会发现:

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

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

setPrototypeOfOrExtend: canSetPrototype ? setPrototypeOf : extend,

然后 KO 根据是否支持 __proto__ 来使用 setPrototypeOfOrExtend

关于javascript - IE8 中的 __proto__ 使用 ko,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829462/

相关文章:

javascript - 添加选项元素会重置选择元素中的滚动位置

html - IE8 不在 div 内统一显示图像

css - IE8 CSS 选择器纯 CSS

CSS 旋转在 IE 中不起作用

javascript - 使用 PHP 制作 Javascript 数组

Javascript:为什么对数组使用 for 循环而不是 for-in 循环?

javascript - Knockout js从元素内容初始化可观察值

javascript - Knockout JS - 如果绑定(bind)在 foreach 内

javascript - 使用 knockout.js 根据选择下拉菜单切换按钮状态

javascript - ng-circle-progress 组件仅在属性 render OnClick 属性设置为 true 时才起作用