Javascript对象返回undefined

时间:2014-03-10 21:38:12

标签: javascript jquery

我正在创建一个变量,其值由特定方法确定。此特定方法应返回具有两个属性的对象。但是,在方法返回后,变量未定义。我在它返回之前检查对象值并且它很好。因此,变量的返回和实例化之间会发生一些事情,导致它未定义。这是一段代码:

var results = findTarget(target, after, append); //undefined

function findTarget(target, after, append){
    var currenttemplate = $(target).attr('data-template');

    for(var i=0; i<after.length; i++){
        if(after[i] === currenttemplate)
            return {target : target, drop : "after"};
    }

    for(var j=0; j<append.length; j++){
        if(append[j] === currenttemplate){
            var obj = {target : target, drop : "append"};
            console.log(obj); //is fine here
            return obj; //this gets returned
        }
    }

    if(currenttemplate === threshold) {
        return "";
    }

    findTarget($(target).parent()[0], after, append); 
}

1 个答案:

答案 0 :(得分:3)

您最后需要添加return

function findTarget(target, after, append){
    /* ... */
    return findTarget($(target).parent()[0], after, append); 
}

如果没有,则递归调用findTarget,并且此递归调用返回适当的值,但第一次调用findTarget不会返回它。