js递归调用注意return返回值

递归调用函数时返回的object通过打印有值,但是在获取的时候是undefined,原因是在递归函数内部没有对递归函数进行return,否则外层函数无法接收到返回值。
调用:	
			//获得公司树结构中的已选中节点
			var selectedNode = $("#resourceTree").tree('getSelected');
			//console.log(selectedNode);
			var rootNode = getTreeRoot(selectedNode);
			console.log('rootNode====')
			console.log(rootNode);
			if(rootNode !=null && rootNode != 'undefined' &&rootNode.text == '金控'){
				alert('金控');
			}else{
				alert('非金控');
			}
递归方法:
		//获得公司结构的节点node对应的最上层节点
		function getTreeRoot(node){
			console.log('getTreeRoot====node');
			console.log(node);
			var parentNode = $("#resourceTree").tree('getParent',node.target);
			console.log('getTreeRoot()=====');
			console.log(parentNode);
			if (parentNode == null){
				console.log('getTreeRoot()=====null');
				console.log(node);
				return node;
			}else{
				console.log('getTreeRoot====else');
				//这里需要对递归方法进行return
				return getTreeRoot(parentNode);
			}
		}

你可能感兴趣的:(js递归调用注意return返回值)