2011-03-10 94 views
0

這應該是相當簡單的,但要確保...如何在不需要參數時調用函數?什麼是正確的做法

function load_img(src, alt, el, other_src) { 

// check if other_src exists, not null, defined, not empty, etc... 

} 

//call the function 
load_img(src, alt, '#zoom-cover'); 

是該行的方式調用該函數不需要參數時..
應該寫些什麼:

load_img(src, alt, '#zoom-cover', null); 

load_img(src, alt, '#zoom-cover', ''); 

有類似像PHP

東西
load_img(src, alt, '#zoom-cover', other_src='default value'); 

and ...我如何檢查,在函數中,other_src存在,定義,有一個有效的值,是不是空或空字符串?

回答

0

如果不需要,可以省略最後一個參數。隨着你給的例子,那會是:

load_img(src, alt, '#zoom-cover'); 

關於你的第二個問題,你可以簡單地這樣做:

if(typeof other_src === 'undefined') { 
    ... 
} 

JavaScript沒有命名參數(「像PHP的「)。取而代之的是,雖然,你可以傳遞一個對象,如:

load_img(src, alt, '#zoom-cover', {other_src: 'something'}); 

這是jQuery插件常用的技術。

function load_img(src, alt, el, other_src) { 
    if (!other_src) { 
    other_src = "mydefaultvalue" 
    } 
} 

或類似這樣的東西,如果你想要的:

0

如果你想有一個默認值來表示other_src當參數不通過或則空做這很好

load_img(src, alt, '#zoom-cover'); 

當參數未被傳遞時,默認值代表other_src。

function load_img(src, alt, el, other_src) { 
    if (typeof(other_src) === "undefined") { 
    other_src = "mydefaultvalue" 
    } 
} 
+0

'undefined!=='undefined''未定義不是字符串。 – DanMan 2011-03-10 18:37:32

+0

只是爲了澄清:如果你測試未定義的變量的值,它是:'if(other_src!== undefined)'。像上面的字符串一樣使用它只能起作用,因爲'typeof'總是返回一個字符串。我曾經在一開始就弄錯了。 – DanMan 2011-03-10 18:45:59

0

只是省略了額外的參數。

如果你想提供一個默認的,使用

other_src = other_src || 'default value'; 
在函數的頂部

,雖然這是不恰當的,如果原來的值也就順理成章「falsey」,在這種情況下:

if (typeof other_src === 'undefined') { 
    other_src = 'default value'; 
} 
0

在JS中,如果你不傳遞一個參數,局部變量會得到'undefined'類型。 所以你可以調用沒有所有參數的函數。

load_img(src, alt, '#zoom-cover'); 
相關問題