rvk*_*rvk 13 javascript callback optional-parameters
如果我正在创建一个接收两个必需参数的函数,一个是回调函数,另外一个是可选的,我可以如何对它进行编码,这样当我只用它的2个必需参数调用它时.
例如:
功能保存(颜色,大小,重量,回调){...}
颜色和回调是强制性的,尺寸和重量是可选的.因此,如果有人想要仅使用颜色和回调来调用此函数...
save('blue',function(...){...}){...}
save('blue', 56, function(...) { ... }) { ... }
Run Code Online (Sandbox Code Playgroud)
但这会将回调函数分配给大小和重量,我该如何解决这个问题呢?
Ber*_*ius 13
参数对象可以很好地解决您的问题,如下所示:
function save(params, callback) {
params.color = params.color || 'default';
params.size = params.size || 0;
params.weight = params.weight || 0;
// ...
if (callback instanceof Function) { callback(); }
}
Run Code Online (Sandbox Code Playgroud)
使用这样:
save({ color: 'blue', weight: 100 }, function () { /* ... */ });
Run Code Online (Sandbox Code Playgroud)
JavaScript参数必须在位置上与预期参数对齐,因此在传递的其他参数之间省略参数将不起作用.一种选择是在单个对象中传递可选参数.
// callback is required
// additional arguments are passed as props of 'options'
function save(options, callback) {
var color = options.color || 'blue';
var size = options.size || 72;
}
Run Code Online (Sandbox Code Playgroud)
像这样传递给他们:
save({ color: 'red' }, function() {});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11796 次 |
| 最近记录: |