在下面的代码中,我想将驻留在父作用域上的函数的引用传递给函数“嵌套”的嵌套作用域,以便我可以调用函数嵌套函数的父范围。我尝试将它作为参数传递,但它不起作用。我只是在学习/搞乱嵌套关闭,并想知道这是否可以完成。将函数引用传递给嵌套闭包
我想有语法调用nested
是:callme.nested()
var obj = function(val){
var access = val;
var apex = 0;
return {
callme : (function(siblyng){
var privatevar = 2;
return {
nested : function(){
privatevar++;
apex = privatevar;
return access + " " + privatevar + " " + siblyng("child");
}
}
})(this.sibling),
assess : function(){
return apex + " " + this.sibling("parent");
},
sibling : function(val){
return "returned from " + val + " scope";
}
}
}
var objref = obj(true);
console.log(objref.callme.nested());
console.log(objref.callme.nested());
console.log(objref.callme.nested());
console.log(objref.assess());
console.log(objref.sibling('global'));
“*将驻留在父范围内的函数的引用传递给函数嵌套的*”的嵌套范围。请说明哪个是引用,它是驻留函数,它是父作用域,它是嵌套作用域,哪个是嵌套函数。 – Oriol
我想最接近的术语“函数嵌套和闭包”是高阶函数。这些函数返回(并生成)其他函数http://eloquentjavascript.net/05_higher_order.html根据返回的嵌套/自引用数据嵌套很可能会造成一团糟。 – lipp
@Oriol,我更新了我的问题,我想要做的是从嵌套函数'nested'中调用函数'sibling'。但是,我尝试了两种不同的方式来传递函数的引用,但都没有成功。 – user2912840