// 创建一个名为f()的命名函数表达式,然后将它赋值给变量dg,即把函数赋值给了另一个变量,函数的名字依然有效,所以递归照样能正常完成
var dg = (
function f(num) {
if(num < 1) {
return 1;
} else {
return num * f(num - 1);
}
}
)
console.log(dg(4));
var another = dg; // 赋的是执行函数的指针
console.log(typeof(another)); // function
console.log(another(3)); // 6
dg = null;
console.log(another(3)); // 6
实例2:
treeIdList (args) {
var idlist = [];
args.forEach(o => {
if (o.isProject === 1) {
idlist.push(o.id);
}
if (Array.isArray(o.nodes) && o.nodes.length > 0) {
idlist = idlist.concat(this.treeIdList(o.nodes));
// idlist.push(this.treeIdList(o.nodes));
}
});
return idlist;
}