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
в данном случае).