Şimdi bir argümanın bir JavaScript işlevine geçirilip iletilmediğini belirlemek için 2 yöntem gördüm. Bir yöntemin diğerinden daha iyi olup olmadığını ya da sadece kötü bir kullanım olup olmadığını merak ediyorum.
function Test(argument1, argument2) {
if (Test.arguments.length == 1) argument2 = 'blah';
alert(argument2);
}
Test('test');
Veya
function Test(argument1, argument2) {
argument2 = argument2 || 'blah';
alert(argument2);
}
Test('test');
Anlayabildiğim kadarıyla, her ikisi de aynı şeyle sonuçlanır, ancak daha önce sadece ilkini üretimde kullandım.
Tom'un belirttiği başka bir seçenek :
function Test(argument1, argument2) {
if(argument2 === null) {
argument2 = 'blah';
}
alert(argument2);
}
Juan'ın yorumuna göre, Tom'un önerisini şu şekilde değiştirmek daha iyi olurdu:
function Test(argument1, argument2) {
if(argument2 === undefined) {
argument2 = 'blah';
}
alert(argument2);
}
argument2 || 'blah';eğer 'blah' verilecektir argument2olduğunu false, bu tanımlanmamış değil sadece if (!). Eğer argument2bir boolean ve işlev geçirilir falsebunun için, bu çizgi rağmen 'blah' dönecektir argument2düzgün tanımlanmış olan .
argument2olduğunu 0, ''ya da null.