#javascript #html
#javascript #HTML
Вопрос:
<script>
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder;
Blob.prototype.slice = Blob.prototype.slice || function(start, length) {
return this.webkitSlice(start, start length);
}
</script>
Эти коды взяты с фоновой страницы расширения Chrome. Любая идея или подсказка будут высоко оценены.
Ответ №1:
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder;
здесь говорится, что установлено window.BlobBuilder
то, на что оно уже установлено, если все, на что оно установлено, является истинным; если все, на что оно установлено в данный момент, является ложным, тогда установите его на window.WebKitBlobBuilder
. Это общий подход, используемый для присвоения значения переменной, если у нее еще нет истинного значения. Истинными значениями являются все, что не является ложными значениями, а ложные значения являются
null
undefined
false
''
0
NaN
В следующей строке используется аналогичный синтаксис
Blob.prototype.slice = Blob.prototype.slice || function(start, length) {
return this.webkitSlice(start, start length);
}
Это устанавливает slice
функцию для Blob
объекта-прототипа либо на саму себя, если текущее значение соответствует действительности, либо на функцию, которая будет использовать webkitSlice
функцию, определенную на this
(которая, я предполагаю, будет WebKitBlobBuilder
в данном случае).
Ответ №2:
Мое поверхностное понимание:
window
представляет ли объект открытое окно / вкладку в браузере. Для получения дополнительной информации смотрите раздел window object в w3schools.com
window.BlobBuilder
means BlobBuilder
— это метод объекта window
, и он используется для создания blob
, который является объектом, используемым для ссылки на двоичные данные в веб-приложениях.
http://code.google.com/apis/gears/api_blob.html
http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
Эти строки используются для определения методов / функций window.BlobBuilder
и Blob.prototype.slice
, чтобы они были совместимы с различными веб-браузерами, которые могут иметь разные имена или вообще не иметь имени для window.BlobBuilder
и Blob.prototype.slice
. Например, window.WebKitBlobBuilder
заменяет window.BlobBuilder
в Chrome 12 или выше.