Может ли кто-нибудь объяснить эти коды для меня (о JavaScript и HTML5)? - PullRequest
0 голосов
/ 11 ноября 2011
<script>
    window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder;

    Blob.prototype.slice = Blob.prototype.slice || function(start, length) {
        return this.webkitSlice(start, start + length);
    }

</script>

Эти коды взяты из фоновой страницы расширения Chrome.Любая идея или намек будут высоко оценены.

Ответы [ 2 ]

5 голосов
/ 11 ноября 2011
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder;

это говорит, установите window.BlobBuilder на то, к чему оно уже установлено, если все, на что оно установлено, является правдивым; если то, что установлено на данный момент, является Falsey, тогда установите его на 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 в данном случае).

1 голос
/ 12 ноября 2011

Мое понимание:

window - это объект, представляющий открытое окно / вкладку в браузере.Для получения дополнительной информации см. раздел объекта окна на w3schools.com

window.BlobBuilder означает, что 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 или выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...