我正在创建以下 Dygraph 对象:
function prime() {
g = new Dygraph(
document.getElementById("g"),
data, //This is the variable I want to avoid passing in for older browsers
{
labelsDivStyles: { 'textAlign': 'right' },
title: document.getElementById("title").value,
titleHeight: 35,
labelsSeparateLines: true,
includeZero: true
}
);
}
我想要一个浏览器检查来确定是否包含“数据”,例如:
if(Browser.Version() > 8){
//include data variable
} else{
//don't include
}
除了创建第二个函数来处理其他情况之外,是否有人有任何想法
最佳答案
您要么需要预先创建和操作对象文字,要么需要在value和null/undefined之间交替使用三元运算符>.
var myObj = {
labelsDivStyles: { 'textAlign': 'right' },
title: document.getElementById("title").value,
titleHeight: 35,
labelsSeparateLines: true,
includeZero: true
};
if( Browser.Version() > 8 ) {
myObj.data = 42;
}
或
function prime() {
g = new Dygraph(
document.getElementById("g"),
data,
{
labelsDivStyles: { 'textAlign': 'right' },
title: document.getElementById("title").value,
titleHeight: 35,
labelsSeparateLines: true,
includeZero: true,
data: Browser.Version() > 8 ? 42 : null
}
);
}
您还可以选择使用一个自调用函数来完成该工作并返回该对象,但这与示例#1 几乎相同。无论哪种方式,您都无法告诉 ECMAscript 在形成对象文字时创建或不创建 key 。
关于javascript - JavaScript 对象中的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298527/