JavaScript 带有可选参数的函数
JavaScript function with optional parameters
我是 JavaScript 的新手,来自 Python 背景。在 Python 中,参数可以作为键和值传递:
def printinfo( name, age = 35 ):
print "Name: ", name
print "Age ", age
return;
那么函数可以这样调用:
printinfo( age=50, name="miki" )
printinfo( name="miki" )
这些参数可以传入 JavaScript 函数吗?
我希望能够传递一个或多个参数。例如 JavaScript 函数:
function plotChart(data, xlabel, ylabel, chart_type="l"){
...
}
我希望能够仅传递数据和图表类型,标签是可选的,例如:
plotChart(data, chart_type="pie")
JavaScript可以吗?
一种方法是检查参数值是否为 undefined
,如果是则赋值。
function plotChart(data, xlabel, ylabel, chart_type) {
if (typeof chart_type === 'undefined') {
chart_type = 'l';
}
}
此外,EcmaScript 2016 (ES6) 提供 Default Parameters. Since some browser don't yet support this feature you can use a transpiler such as babel 将代码转换为 ES5。
要使其像您的 python 示例中那样工作,您必须传递一个包含值而不是单个参数的对象。
function plotChart(options) {
var data = options.data;
var xlabel = options.xlabel;
var ylabel = options.ylabel;
var chart_type = (typeof options.chart_type === 'undefined' ? 'l' : options.chart_type);
}
用法示例
plotChart({
xlabel: 'my label',
chart_type: 'pie'
});
您可以检查是否定义了参数并将其硬编码到您的函数中。
例如
var preDefined = function(param) {
if(param === undefined) {
param = preDefinedValue
}
/* Rest of code goes here */
}
预计到达时间:
ES6 允许使用默认参数值(我发布答案时并不知道这一点)。
执行此操作的一个好方法是为所有参数使用一个对象。类似于:
function plotChart(options) {
// Set defaults
options.chart_type = options.chart_type || '1';
// Check if each required option is set
// Whatever is used by the data
}
那么函数调用时:
plotChart({
data: 'some data',
xlabel: 'some xlabel',
ylabel: 'some ylabel',
chart_type: '5' // This is optional
});
已经有大量的答案,但我还没有看到我认为最简单的解决方案。
var myFunc = function(param1) {
var someData = param1 || "defaultValue";
}
我是 JavaScript 的新手,来自 Python 背景。在 Python 中,参数可以作为键和值传递:
def printinfo( name, age = 35 ):
print "Name: ", name
print "Age ", age
return;
那么函数可以这样调用:
printinfo( age=50, name="miki" )
printinfo( name="miki" )
这些参数可以传入 JavaScript 函数吗?
我希望能够传递一个或多个参数。例如 JavaScript 函数:
function plotChart(data, xlabel, ylabel, chart_type="l"){
...
}
我希望能够仅传递数据和图表类型,标签是可选的,例如:
plotChart(data, chart_type="pie")
JavaScript可以吗?
一种方法是检查参数值是否为 undefined
,如果是则赋值。
function plotChart(data, xlabel, ylabel, chart_type) {
if (typeof chart_type === 'undefined') {
chart_type = 'l';
}
}
此外,EcmaScript 2016 (ES6) 提供 Default Parameters. Since some browser don't yet support this feature you can use a transpiler such as babel 将代码转换为 ES5。
要使其像您的 python 示例中那样工作,您必须传递一个包含值而不是单个参数的对象。
function plotChart(options) {
var data = options.data;
var xlabel = options.xlabel;
var ylabel = options.ylabel;
var chart_type = (typeof options.chart_type === 'undefined' ? 'l' : options.chart_type);
}
用法示例
plotChart({
xlabel: 'my label',
chart_type: 'pie'
});
您可以检查是否定义了参数并将其硬编码到您的函数中。
例如
var preDefined = function(param) {
if(param === undefined) {
param = preDefinedValue
}
/* Rest of code goes here */
}
预计到达时间:
ES6 允许使用默认参数值(我发布答案时并不知道这一点)。
执行此操作的一个好方法是为所有参数使用一个对象。类似于:
function plotChart(options) {
// Set defaults
options.chart_type = options.chart_type || '1';
// Check if each required option is set
// Whatever is used by the data
}
那么函数调用时:
plotChart({
data: 'some data',
xlabel: 'some xlabel',
ylabel: 'some ylabel',
chart_type: '5' // This is optional
});
已经有大量的答案,但我还没有看到我认为最简单的解决方案。
var myFunc = function(param1) {
var someData = param1 || "defaultValue";
}