更具体地说
if("indexedDB" in window)
对比
if(window.indexedDB)
我总是使用第二种方法,但在net tuts 教程中,他们使用的是方法 1。
'indexedDB' in window
(注意你需要引号)检查窗口是否有一个名为的属性indexedDB
(没有引号,它是“一个名称存储在indexedDB
变量中的属性”)
window.indexedDB
检查具有该名称的属性是否真实。
现在,在很多情况下,尤其是在特性测试中,您已经知道您正在寻找一个对象,因此使用哪种方法没有区别。但是在更一般的情况下:
window.derp = false;
if( 'derp' in window) { /* true */ }
if( window.derp) { /* false */ }