参数 expect 函数的默认值
Default value for parameter expect function
我想为期望接收函数的函数参数添加默认值。
看下面的例子:
/**
* @param {function} callback
* @param {String} name
*/
function example(callback, name){
console.log('Hello' + name + 'from parent function');
callback();
}
// implementation
example(null, "Mickey");
我想将 callback
作为可选参数。
因为一个函数有一个 typeof "function",你可以做一个简单的 typeof 检查。虽然 JavaScript 函数是 first-class,所以你真的不需要做太多改变。
/**
* @param {function} callback
* @param {String} name
*/
function example(callback, name){
if (typeof a !== "function") {
callback = function(){ }; // replace this with your default function
}
console.log('Hello' + name + 'from parent function');
callback();
}
如需更深入的答案,请参阅受保护的答案here
编辑:顺便说一句,最好将可选回调作为第二个参数。这样您就不必显式传递 null 来获取默认值。
function example(name, callback) { ... }
example("hello"); // callback has value null
example("hello", function(){...}); // also valid
在 JavaScript 中,您通常会测试参数是 null
还是 undefined
并提供默认值。更简洁地说,您可以使用 ||
:
callback = callback || (some default value);
使用 ||
更宽松,因为它还会将 JavaScript 中的任何 "falsy" 视为缺失,包括 false
、一个空字符串和零。所以它对可选的布尔参数没有用。
在你的例子中,你的默认值是一个函数:
function example(opt_callback, name) {
var callback = opt_callback || function() {};
console.log('Hello' + name + 'from parent function');
callback();
}
此处默认函数不提供任何内容,但您可以在此处向默认函数添加一些默认行为。
用 opt_
命名可选参数是 Google JavaScript Style Guide and Google Closure Compiler 推荐的做法。我认为它使代码更具可读性,但也许我只是习惯了它。
除非有其他最重要的可读性原因,否则最好将可选参数放在参数列表的末尾,例如:
function example(name, opt_callback) {
...
这样调用者可以只用一个参数简洁地调用您的函数,例如 example('Mickey')
,因为 JavaScript 中未指定参数的默认值为 undefined
.
我想为期望接收函数的函数参数添加默认值。
看下面的例子:
/**
* @param {function} callback
* @param {String} name
*/
function example(callback, name){
console.log('Hello' + name + 'from parent function');
callback();
}
// implementation
example(null, "Mickey");
我想将 callback
作为可选参数。
因为一个函数有一个 typeof "function",你可以做一个简单的 typeof 检查。虽然 JavaScript 函数是 first-class,所以你真的不需要做太多改变。
/**
* @param {function} callback
* @param {String} name
*/
function example(callback, name){
if (typeof a !== "function") {
callback = function(){ }; // replace this with your default function
}
console.log('Hello' + name + 'from parent function');
callback();
}
如需更深入的答案,请参阅受保护的答案here
编辑:顺便说一句,最好将可选回调作为第二个参数。这样您就不必显式传递 null 来获取默认值。
function example(name, callback) { ... }
example("hello"); // callback has value null
example("hello", function(){...}); // also valid
在 JavaScript 中,您通常会测试参数是 null
还是 undefined
并提供默认值。更简洁地说,您可以使用 ||
:
callback = callback || (some default value);
使用 ||
更宽松,因为它还会将 JavaScript 中的任何 "falsy" 视为缺失,包括 false
、一个空字符串和零。所以它对可选的布尔参数没有用。
在你的例子中,你的默认值是一个函数:
function example(opt_callback, name) {
var callback = opt_callback || function() {};
console.log('Hello' + name + 'from parent function');
callback();
}
此处默认函数不提供任何内容,但您可以在此处向默认函数添加一些默认行为。
用 opt_
命名可选参数是 Google JavaScript Style Guide and Google Closure Compiler 推荐的做法。我认为它使代码更具可读性,但也许我只是习惯了它。
除非有其他最重要的可读性原因,否则最好将可选参数放在参数列表的末尾,例如:
function example(name, opt_callback) {
...
这样调用者可以只用一个参数简洁地调用您的函数,例如 example('Mickey')
,因为 JavaScript 中未指定参数的默认值为 undefined
.