Parametri opționali în funcțiile JavaScript

Înainte să fac front end am încercat – printre altele – și PHP. Prin urmare, când am început cu JS, mi-a fost relativ ușor să înțeleg sintaxa. Ce nu am înțeles pe moment au fost funcțiile. Dacă în PHP puteam face:

function foo($bar = 0){ // dacă nu este specificată nici o valoare, $bar are valoarea 0

}

În JS nu știam nici o modalitate de a pune o valoare implicită pentru parametri trimiși funcțiilor. Cu toate astea, soluția este destul de simplă:

function foo(bar){
var bar = bar || 0;

}

Mai mulți parametri

Ok, dacă am stabilit cum să setăm o valoare implicită, hai să vedem cum facem dacă avem mai mulți parametri.

Soluția clasică ar fi:

function foo(a, b, c, d, e, f, g, h){

}

Merge, e ok, toată lumea e fericită. Dar… poți uita repede ce reprezintă fiecare parametru și mai ales ORDINEA lor, astfel încât folosirea unei funcții după câteva zile poate fi destul de problematică.

Dacă folosești jQuery, poți abuza liniștit de jQuery.extend(). În loc să trimiți un șir aiurea de argumente, faci frumușel un obiect și…

var params = {
	currency:	'euro',
	price	:	200
};
foo(params);

function foo(params) {
	var o = { // o is for options
		currency:	'USD',
		price	:	0,
		default_param	:	'bar'
	}
	$.extend(o, params);

	console.dir(o);

}

Acum nu mai contează în ce ordine specifici argumentele. Simplu, nu?

4 Comentarii to “Parametri opționali în funcțiile JavaScript”

  1. Facilitatea asta se numeste ‘parametri optionali’, este foarte utila in PHP si am fost uimit sa vad ca multe limbaje nu o au, incluzand Java. Acum vad ca nici Javascript nu o are. Chiar si C# abia de anul asta o are, incepand cu C# 4.0:
    http://blog.zeltera.eu/?p=1589

  2. Staicu Ionuț-Bogdan

    @Jean: mulțumesc, am actualizat.

  3. Thanks for this!

    I’ve translated to Spanish HERE and, of course, put a link to this post at the bottom!

    Cheers from Paraguay!

  4. Staicu Ionuț-Bogdan

    Hi Gilberto, I’m glad you found this useful.

    Cheers back from Romania ;)

Show trackbacks

Ți-a plăcut articolul? Lasă un comentariu!

You can insert code snippets using BBcode:
[js].[/js] [html].[/html] [php].[/php] [css].[/css]
You can also use some HTML tags:
<blockquote>.</blockquote> <code>.</code> <a href="">.</a> <strong>.</strong> <em>.</em>

windows apple dropbox facebook twitter