Не мог бы кто-нибудь объяснить мне эти коды (о JavaScript и HTML5)?

#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 или выше.