目前我有以下内容:
function bar() {
// Do fancy D3 stuff here
function update(source) {
// Do fancy D3 update
}
}
我点击一个按钮就会调用bar()
,但我需要从update()
之外访问bar()
(以及传递参数) 。我已经尽可能多地阅读了闭包,但我仍然无法让它完全正常工作。我已经看到有关向window
对象分配函数以使内部函数全局化的内容,但我还没有这样做。
答案 0 :(得分:1)
我不确定你要求的是什么,但我不明白为什么你不能在update
之外声明bar
。然后,您可以从update
内外访问bar
。
以下是jsfiddle
HTML:
<button onclick="bar()">Tree</button>
的javascript:
function bar() {
var p = document.createElement("h2");
var pText = document.createTextNode("fancy D3 stuff in bar");
p.appendChild(pText);
document.body.appendChild(p);
update("bar");
}
function update(source) {
var p = document.createElement("h1");
var pText = document.createTextNode("fancy D3 stuff in update called from " + source);
p.appendChild(pText);
document.body.appendChild(p);
}
答案 1 :(得分:0)
要将“更新”功能分配给窗口,您可以执行此操作。
function bar() {
// Do fancy D3 stuff here
var update = function (source) {
// Do fancy D3 update
}
window.updateBar = update;
}
答案 2 :(得分:0)
如果我能理解你,你想要那样的东西吗?
var a = {
b : 0,
set : function(input){
b = input;
},
get : function(){
alert(b);
}
}
a.set('34234');
a.get();