【发布时间】:2012-10-17 19:16:22
【问题描述】:
所以这里有一个奇怪的:
var a = true;
function f(v){ v = !v; } //can this function actually change a?
f(a); //a is still true..
如果函数是内部 v 变量,则该函数显然只会更改值。
我在一个应在运行时动态更改DOM 元素属性值的应用程序上遇到了这个问题。所以理想情况下应该有一个函数将属性作为参数并重新分配它,对吧?
为了清楚起见 - 我实际上是在尝试在运行时为 DOM 元素的属性分配新值:我有一个反射器应用程序,它遍历对象的成员,我希望它能够更改它遇到的属性的值,因此 f 函数将属于 BooleanSwitch 构造函数,该构造函数为反射对象中的每个布尔类型属性构建一个 booleanSwitch 对象。 booleanSwitch 可以是屏幕上的一个简单按钮。我希望能够通过单击按钮来更改手头对象的实际属性的值。 谁能想到办法做到这一点?
任何想法都是appriciated..
【问题讨论】:
-
你确定你遇到的函数没有
return声明,或者接受对象参数? -
...你确定这个函数被命名为
switch吗?这不是一个有效的函数名。 -
听起来像an XY problem。你实际上想做什么?
-
请如前所述更新您的代码。根据代码,您的问题不是问题,只要您不尝试为函数体内的变量
a分配任何值,您只需分配作为参数传递的变量v。 -
@..607 我遇到了问题,不是代码。但是你就在 switch 关键字上,我已经解决了。
标签: javascript function variables variable-assignment