在javascript中从外部访问函数内的函数

时间:2013-10-14 17:45:56

标签: javascript jquery

我有一个嵌套的函数,我想从外面调用。

var _Config = "";
var tourvar;
function runtour() {
    if (_Config.length != 0) {
        tourvar = $(function () {
            var config = _Config,
                autoplay = false,
                showtime,
                step = 0,
                total_steps = config.length;
            showControls();
            $('#activatetour').live('click', startTour);
            function startTour() {
            }
            function showTooltip() {
            }
        });
    }
}
function proceed() {
    tourvar.showTooltip();
}
$(document).ready(function () {
    runtour();
});

我希望通过tourvar.showTooltip()调用它;但我似乎错了:)我怎样才能从函数外部使用showTooltip()?

2 个答案:

答案 0 :(得分:1)

由于我之前的回答确实很热门,所以我决定将其删除并为您提供另一个:

var _Config = "";
var tourvar;

// Module pattern
(function() {
    // private variables
    var _config, autoplay, showtime, step, total_steps; 

    var startTour = function() { };

    var showTooltip = function() { };

    // Tour object constructor
    function Tour(config) {
        _config = config;
        autoplay = false;
        step = 0;
        total_steps = _config.length;

        // Provide the user with the object methods
        this.startTour = startTour;
        this.showTooltip = showTooltip;
    }

    // now you create your tour
if (_Config.length != 0) {
        tourvar = new Tour(_Config);
    }
})();

function proceed() {
    tourvar.showTooltip();
}
$(document).ready(function () {
    runtour();    
});

答案 1 :(得分:0)

function outerFunction() {
    window.mynestedfunction = function() {
    }
}
mynestedfunction();