<script>
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder;
Blob.prototype.slice = Blob.prototype.slice || function(start, length) {
return this.webkitSlice(start, start + length);
}
</script>
这些代码来自Chrome扩展程序的后台页面。任何想法或提示都将受到高度赞赏。
答案 0 :(得分:5)
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder;
这表示将window.BlobBuilder
设置为已经设置的内容,如果它设置的是真实的;如果它当前设置为false,则将其设置为window.WebKitBlobBuilder
。这是一种通用方法,用于在变量尚未具有真值的情况下为变量赋值。 Truthy值是任何非假值的值,falsey值是
null
undefined
false
''
0
NaN
下一行使用类似的语法
Blob.prototype.slice = Blob.prototype.slice || function(start, length) {
return this.webkitSlice(start, start + length);
}
如果当前值为真,则将slice
原型对象上的Blob
函数设置为自身,或者设置为将使用{{1}上定义的webkitSlice
函数的函数(我假设在这个例子中将this
)。
答案 1 :(得分:1)
我对皮肤的深刻理解:
window
是一个对象,表示浏览器中的一个打开的窗口/选项卡。有关更多信息,请参阅w3schools.com中的窗口对象部分
window.BlobBuilder
表示BlobBuilder
是对象window
的一种方法,它用于创建blob
,它是用于在Web应用程序中引用二进制数据的对象。
http://code.google.com/apis/gears/api_blob.html
http://dev.w3.org/2006/webapi/FileAPI/#dfn-Blob
这些行用于定义方法/函数window.BlobBuilder
和Blob.prototype.slice
,以便它们与不同的Web浏览器兼容,这些浏览器可能具有不同的名称或window.BlobBuilder
和{{的名称1}}。例如,Blob.prototype.slice
会替换Chrome 12或更高版本中的window.WebKitBlobBuilder
。