


Detailed explanation of default parameters in Javascript_Basic knowledge
May 16, 2016 pm 04:33 PMSome languages - like Ruby, CoffeeScript and upcoming JavaScript versions - can declare default parameters when defining a function, like this:
function myFunc(param1, param2 = "second string") {
console.log(param1, param2);
}
// Outputs: "first string" and "second string"
myFunc("first string");
// Outputs: "first string" and "second string version 2"
myFunc("first string", "second string version 2");
Unfortunately, in the current version of javascript, this way of writing is invalid. So, what can we do to achieve this, using our existing toolset?
The simplest solution is like this:
function myFunc(param1, param2) {
If (param2 === undefined) {
param2 = "second string";
}
console.log(param1, param2);
}
// Outputs: "first string" and "second string version 2"
myFunc("first string", "second string version 2");
The fact is that an omitted parameter is always "undefined" when accessed. This is a good solution if you only have one parameter, but what if you have more than one?
If you have more than one parameter, you can use an object as the parameter, which has the advantage that each parameter has a clear name. If you pass an object parameter, you can declare a default value in the same way.
function myFunc(paramObject) {
var defaultParams = {
param1: "first string",
param2: "second string",
param3: "third string"
};
var finalParams = defaultParams;
// We iterate over each property of the paramObject
for (var key in paramObject) {
// If the current property wasn't inherited, proceed
If (paramObject.hasOwnProperty(key)) {
// If the current property is defined,
// add it to finalParams
If (paramObject[key] !== undefined) {
finalParams[key] = paramObject[key];
}
}
}
console.log(finalParams.param1,
finalParams.param2,
finalParams.param3);
}
myFunc({param1: "My own string"});
This is a bit clumsy. If you use this method in many places, you can write a wrapper function. Fortunately, many libraries now have related methods, such as the extend method in jQuery and Underscore.
The following uses Underscore’s extend method to achieve the same result as above:
function myFunc(paramObject) {
var defaultParams = {
param1: "first string",
param2: "second string",
param3: "third string"
};
var finalParams = _.extend(defaultParams, paramObject);
console.log(finalParams.param1,
finalParams.param2,
finalParams.param3);
}
// Outputs:
// "My own string" and "second string" and "third string"
myFunc({param1: "My own string"});
This is how you can get default parameters, in current javascript versions.
We welcome criticism and correction of any inaccuracies in the article.

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Default parameters in C++ function declarations: a comprehensive analysis of their declaration and usage

How to implement an online speech recognition system using WebSocket and JavaScript

WebSocket and JavaScript: key technologies for implementing real-time monitoring systems

How to implement an online reservation system using WebSocket and JavaScript

How to optimize the use of default parameters and variadic parameters in C++ functions

How to use JavaScript and WebSocket to implement a real-time online ordering system

JavaScript and WebSocket: Building an efficient real-time weather forecasting system

Simple JavaScript Tutorial: How to Get HTTP Status Code
