2017-06-04 176 views
0

我現在正在解決滑塊問題,但是,我不知道JavaScript的那個,我已經隔離了負責滑塊功能的.js文件,這裏有一個破壞函數我想開火,代碼看起來像這樣如何執行嵌套的Javascript函數

(function ($) { 

$.pixelentity = $.pixelentity || {version: '1.0.0'}; 

$.pixelentity.peBackgroundSlider = {  
    conf: { 
     api: false, 
     wait: false 
    }, 
    paused: false 
}; 

function PeBackgroundSlider(target, conf) { 

    ... 

    function destroy() { 
     prevColor = currentColor = currentBW = jwindow = jthis = undefined; 
     target.data("peBackgroundSlider", null); 
     target = undefined; 
    } 
} 

在這種情況下,我將如何觸發destroy功能?

+0

它必須從內部訪問'PeBackgroundSlider()',因爲它在該函數的私人範圍。 –

回答

2

你不能像現在這樣。

要調用它,你必須 「出口」,如下所示:

function PeBackgroundSlider(target, conf) { 

... 

function destroy() { 
    prevColor = currentColor = currentBW = jwindow = jthis = undefined; 
    target.data("peBackgroundSlider", null); 
    target = undefined; 
    } 

    return { "destroy": destroy }; 
} 

從來電:

var ret = PeBackgroundSlider(); 

現在你可以這樣做:

ret.destroy(); 

或者,更簡潔:

return destroy; 

和:

innerDestroy = PeBackgroundSlider(); 

最後:

innerDestroy();