我经常使用var options = options || {}
默认为空对象的方式。它通常用于初始化选项对象,以防它未在函数调用的参数中传递。
问题是我已经在几个地方(博客文章、源代码)阅读过options || (options = {})
更好地表达开发人员意图的地方。有人可以详细说明吗?我看不出两者之间的功能差异,所以我必须在这里遗漏一些东西。
- - 编辑
我在几个地方的 Backbone.js 源代码中看到了,例如https://github.com/documentcloud/backbone/blob/0.9.2/backbone.js#L273
我想我也在 jQuery 的源代码中看到了它。并且在蓬勃发展的多个 Js 写作风格指南中。
--- 编辑 2 代码示例:
var func = function(param, options) {
// How I do it
var options = options || {};
// How I should do it in the "same" way
options = options || {};
// The "other" way
options || (options = {});
}