函数运行期间发生奇怪错误

时间:2012-01-15 10:53:18

标签: javascript jquery function console

我有以下功能:

var appendStructure = {

        init : function(wrapper,structure,cls,callback) {

            $(wrapper).appendTo(container).hide()
            var object = $(container).find(cls);
            $(structure.join('')).appendTo(object);
            showObj(object,function() {
                if(opts.centerObj == true) {
                    $(window).resize(function() {
                        var cssProps = getProps(object);
                        object.css(cssProps);
                    });
                }
                if(typeof callback == 'function') {
                    callback();
                }
            });

        }
}

其中调用的其他函数:

var getProps = function(obj) {
    return {
        'position' :'absolute',
        'top' : (($(window).height() - $(obj).outerHeight()) / 2)+'px',
        'left' : (($(window).width() - $(obj).outerWidth()) / 2)+'px'
    }
}

var showObj = function(obj,callback) {
    return setTimeout(function () {
        if(opts.centerObj == true) {
            var cssProps = getProps(obj);
            obj.css(cssProps).fadeIn('slow');
        }
            else {
                obj.fadeIn('slow');
            }
        if(typeof callback == 'function') {
            callback();
        }
    }, 1500);
}

我运行这样的功能:

if(appendStructure.init(wrapper.login,structure.login,'.content-login')){
        console.log('Object Appended'); 
    }
        else {
            console.log('Error');   
        }

我的问题是,为什么控制台输出Error,因为该功能实际上有效并且假设发生的一切都会发生?

1 个答案:

答案 0 :(得分:5)

appendStructure.init没有return任何值,因此返回值为undefinedundefined评估为false,因此else语句的if...else分支已执行。