我很好奇它是如何运作这种结构的。当我从Javascript访问navigator.mimetypes时,我正在访问一个对象。
>>> typeof(navigator.mimeTypes)
"object"
该对象包含对象列表。
navigator.mimeTypes [Object_0,Object_1,Object_2,...]
>>> typeof(navigator.mimeTypes[0])
"object"
例如,我可以检索第一个对象:
navigator.mimeTypes [0]
MimeType { constructor=MimeType, enabledPlugin=Plugin, type="application/x-vnd.google.update3webcontrol.3"}
任何人都可以解释一下为什么这有效吗?
>>> navigator.mimeTypes["application/x-shockwave-flash"]
MimeType { constructor=MimeType, type="application/x-shockwave-flash", description="",more...}
我的意思是为什么我能够通过[“application / x-shockwave-flash”]找到指定的对象?
javascript对我来说将是一个新世界:)
答案 0 :(得分:4)
navigator.mimeTypes
返回一个名为MimeTypeArray
的对象,它不是传统的JavaScript数组,而是具有类似数组属性的对象,您可以通过索引或名称访问它的属性。
编辑:当您使用navigator.mimeTypes['someType']
时,您将MimeTypeArray
视为哈希映射,其someType
映射到阵列中的MimeType
对象与键相同值的type
属性。这是DOM中的一个奇怪的对象(不是技术上的JavaScript),你通常不会看到很多像这样的对象。
答案 1 :(得分:0)
function GetMimeTypes() {
var message = "";
// Internet Explorer supports the mimeTypes collection, but it is always empty
if (navigator.mimeTypes && navigator.mimeTypes.length > 0) {
var mimes = navigator.mimeTypes;
for (var i=0; i < mimes.length; i++) {
message += "<b>" + mimes[i].type + "</b> : " + mimes[i].description + "<br />";
}
}
else {
message = "Your browser does not support this example!";
}
var info = document.getElementById ("login_info");
info.innerHTML = message;
}
GetMimeTypes();