__proto__ 我使用的是 IE8
__proto__ in IE8 using ko
我正在寻找一种安全的方法来使现有函数成为 instanceof
另一个函数。
我在这里看到 IE8 不支持 __proto__
:
听说knockout js支持IE8:http://knockoutjs.com/documentation/browser-support.html
我使用 __proto__
找到了敲除: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
我正在寻找一种安全的方法来使现有函数成为 instanceof
另一个函数。
我在这里看到 IE8 不支持 __proto__
:
听说knockout js支持IE8:http://knockoutjs.com/documentation/browser-support.html
我使用 __proto__
找到了敲除: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