何时使用"in"vs"window".

nat*_*ing 0 javascript

更具有特色

if("indexedDB" in window)
Run Code Online (Sandbox Code Playgroud)

VS

if(window.indexedDB)
Run Code Online (Sandbox Code Playgroud)

我总是使用第二种方法,但在net tuts教程中,他们使用方法1.

Nie*_*sol 6

'indexedDB' in window(注意你需要引号)检查窗口是否有一个名为的属性indexedDB(没有引号,它是"一个名称存储在indexedDB变量中的属性")

window.indexedDB 检查具有该名称的属性是否真实.

现在,在许多情况下,特别是在进行特征测试时,您已经知道正在寻找一个对象,因此使用哪种方法没有区别.但是在更一般的情况下:

window.derp = false;
if( 'derp' in window) { /* true */ }
if( window.derp) { /* false */ }
Run Code Online (Sandbox Code Playgroud)