查看javascript评论
var SearchResult = {
googleApiKey: "",
googleUrl: "https://www.googleapis.com/shopping/search/v1/public/products?key={key}&country={country}&q={query}&alt=atom",
country: "UK"
Query: function( args )
{
// Is there a way to do this in a less messy way?
args.googleApiKey ? : this.googleApiKey = args.googleApiKey : null;
args.country? : this.country = args.country: null;
}
}
基本上,如果有人为我的对象属性提供了一个新值,我希望它设置它,否则只需继续使用提供的默认值。
我知道按位运算符有助于选项选择,但我不知道如何将其移植到javascript中?
答案 0 :(得分:4)
args.googleApiKey = args.googleApiKey || this.googleApiKey;
args.country = args.country || this.country;
不确定我理解你的问题;
答案 1 :(得分:3)
在JavaScript中,您可以使用以下内容:
// thingYouWantToSet = possiblyUndefinedValue || defaultValue;
this.googleApiKey = args.googleApiKey || '';
使用它的警告是,如果第一个值是零或空字符串,您将最终使用默认值,这可能不是您想要的。 e.g。
var example = '';
var result = example || 'default';
虽然设置了示例,但最终会使用'default'字符串。如果这会导致问题,请切换到:
(typeof args.googleApiKey === 'undefined')
? this.googleApiKey = 'default'
: this.googleApiKey = args.googleApiKey;
如果你经常重复一遍,你可以使用辅助功能使这个更干净。
var mergedSetting = function (setting, default) {
return (typeof setting === 'undefined') ? default : setting;
}
this.googleApiKey = mergedSetting(args.googleApiKey, 'default value');