我最近看了關於CSS的瀏覽器功能檢測的教程......最終的產品是這樣的......foo in bar - 'in'operator javascript?
var prefix = ['Moz', 'webkit', 'O', 'ms', 'Khtml'],
test_style = document.createElement('div').style;
var css_check = function(prop) {
if (prop in test_style) {
return true;
}
for (var i = 0; i < prefix.length; i++) {
if (prefix[i] + prop in test_style) {
return true;
}
}
return false;
};
css_check('whatev_css_property');
我不明白的部分是這個...
if (prop in test_style)
或if (foo in bar)
。
從我讀的if (foo in bar)
是用來檢查一個值是否在一個數組中,但我可能在這裏是錯誤的,我還沒有找到這方面的文檔。此外,如果這是用來檢查數組中的值如何是test_style = document.createElement('div').style
數組?沒有意義...
我很可怕的困惑。任何澄清將不勝感激。
我不會建議使用'foo in bar'來檢查數組中是否存在值 - 您應該使用'indexOf'(http://stackoverflow.com/questions/237104/array-containsobj-in- javascript)。在你的情況下,'test_style'是一個對象字面值,在這種情況下'foo in bar'對於檢查密鑰的存在是正確的。在bar中使用'foo'檢查數組中是否存在索引(索引與對象的鍵相同) – Ian