我创建了以下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
}
除了创建第二个函数来处理其他案例之外,是否有任何想法
答案 0 :(得分:0)
您需要预先创建和操作对象文字,或者需要在 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在形成对象文字时创建或不创建密钥。