我在JavaScript中实现二叉树,需要能够将变量传递给函数,并在函数内部将变量的初始上下文中的值设置为undefined。
示例:
var foo = {}
function bar(a) { a = undefined }
bar(foo)
在此上下文中,仍然定义了foo
。
我意识到这不会像这样工作,但我怎样才能在JS中做类似的事情?
此外,foo
并不总是全球性的。
答案 0 :(得分:1)
如果foo
是全局的,您可以将该名称作为字符串传递,并将其作为全局对象的属性进行访问。
在浏览器中,您使用window
:
var foo = {};
function bar(a) { window[ a ] = undefined; }
bar('foo');
alert( foo ); // undefined
如果foo
不是全球性的,我认为如果不使用.eval()
,您就无法做到这一点。