cra*_*eum 2 javascript closures
好的,我不知道如何在没有显示的情况下实际问这个问题.(还解释了为什么我无法弄清楚如何在Google上搜索它.)
鉴于代码如下:
dijit.byId('leftNavigationPane').onLoad = function(){setSecondaryNav(url.secondaryNavId);};
我想要对变量url.secondaryNavId进行评估,所以我真正想要的是对它进行如下处理:
dijit.byId('leftNavigationPane').onLoad = function(){ setSecondaryNav('item1'); };
我相信可能有更好的方法来做到这一点,所以请随意提出建议.
不要用eval!
dijit.byId('leftNavigationPane').onLoad = function(id){
return function(){ setSecondaryNav(id); };
}(url.secondaryNavId);
Run Code Online (Sandbox Code Playgroud)
这将立即执行外部匿名函数(在运行时),传递url.secondaryNavId参数,然后创建一个内部匿名函数将使用的闭包(因此id将始终包含url.secondaryNavId属性的赋值时间值).
| 归档时间: |
|
| 查看次数: |
817 次 |
| 最近记录: |