是否可以将可选参数传递给 javascript 中的函数?
我在 JavaScript 中有一个函数,我想要 recicly,所以,我想在函数中使用 var 选项,而不是为参数传递变量。
我的功能如下:
JavaScript:
function DrawChartPie(rows, title, chart_div, legend_position) {
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Tipo');
data.addColumn('number', 'Quantidade');
data.addRows(rows);
var options = {
width: 450,
height: 250,
title: title,
legend: legend_position,
backgroundColor: 'transparent',
is3D: true,
chartArea: {width:"90%"}
};
var chart = new google.visualization.PieChart(document.getElementById(chart_div));
chart.draw(data, options);
}
helper :
html = pie_chart(data, title, div, pos_leg)
我想做的,但没有用:
helper :
def pie_data(data_pie, div, options = {})
....
optional = {
width: 900,
height: 500,
title: title,
legend: pos_leg,
backgroundColor: 'transparent',
is3D: true,
chartArea: {width:"90%"}
};
...
html = pie_chart(data, title, div, pos_leg, optional)
JavaScript:
function DrawChartPie(rows, title, chart_div, legend_position, optional = {}) {
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Tipo');
data.addColumn('number', 'Quantidade');
data.addRows(rows);
var option = optional || {
width: 450,
height: 250,
title: title,
legend: legend_position,
backgroundColor: 'transparent',
is3D: true,
chartArea: {width:"90%"}
};
var chart = new google.visualization.PieChart(document.getElementById(chart_div));
chart.draw(data, option);
}
}
当我尝试这样做时,什么都不显示。
有可能做这样的事情吗?如果是,有人可以帮助我吗?
谢谢 =] 对不起我的英语:P
----更新---- 我按照建议更新了我的方法,但现在我遇到了另一个错误。
JavaScript:
function DrawChartPie(rows, title, chart_div, legend_position, optional) {
...
var optional = optional || {
width: 450,
height: 250,
title: title,
legend: legend_position,
backgroundColor: 'transparent',
is3D: true,
chartArea: {width:"90%"}
};
...
}
helper :
def pie_data(data_pie, div, options = {}){
...
optional = {
width: 900,
height: 500,
title: title,
legend: pos_leg,
backgroundColor: 'transparent',
is3D: true,
chartArea: {width:"90%"}
};
html = pie_chart(data, title, div, pos_leg, optional)
}
我的错误:参数数量错误(5 对 4)
我已经重启了我的服务器 :P
最佳答案
有点。从技术上讲,所有 JavaScript 参数都是可选的,默认为 undefined
。这就是您拥有不同默认参数的方式。
function DrawChartPie(rows, title, chart_div, legend_position, optional) {
optional = optional || {};
如果您期望伪值,例如 null
、NaN
、0
、""
(空字符串) , 和 false
,作为可选参数的值,你可以用这个代替:
function DrawChartPie(rows, title, chart_div, legend_position, optional) {
optional = optional === undefined ? {} : optional;
关于javascript - 在 JavaScript 函数中传递可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635900/