如何在函数内将未定义的变量转换为对象
How to turn an undefined var to an object, inside a function
有些事情我找不到答案或解释。让我们以以下代码为例:
function fn(x){
x = {value: 10};
}
var a;
fn(a);
alert(a.value); //a is undefined
当我们通过该函数传递它时,不应该a = {value: 10};
吗?
x
是本地范围的。您只传递值而不传递引用。因此,您可能需要像这样返回和分配:
function fn(x){
x = {value: 10};
return x;
}
var a;
a = fn(a);
来自一篇很棒的文章:
传入基元类型变量(如字符串或数字(时,值按值传入。这意味着在函数中对该变量的任何更改都与函数外部发生的任何更改完全分开。
function myfunction(x)
{
// x is equal to 4
x = 5;
// x is now equal to 5
}
var x = 4;
alert(x); // x is equal to 4
myfunction(x);
alert(x); // x is still equal to 4
但是,传入对象时,会通过引用传入对象。在这种情况下,可以在函数中访问该对象的任何属性。
function myobject()
{
this.value = 5;
}
var o = new myobject();
alert(o.value); // o.value = 5
function objectchanger(fnc)
{
fnc.value = 6;
}
objectchanger(o);
alert(o.value); // o.value is now equal to 6
相关文章:
- 将标量变量转换为javascript中包含变量的数组
- 使用Javascript将多行变量转换为单行变量
- 变量转换为另一个“未定义”的变量
- 如何在javascript中将String变量转换为int
- 提交时将JavaScript变量转换为PHP表单
- 在d3.js中将局部变量转换为全局变量
- 在php函数中将php变量转换为javascript变量
- AngularJS变量转换为html<对象>属性
- 正在将字符串变量转换为数组
- 将变量转换为 json 路径
- 将 MVC 4 Razor 变量转换为 JavaScript 数组
- 如何在 JavaScript 中将局部变量转换为全局变量
- 如何将 jstl/JSP 变量转换为 JavaScript 变量
- 如何将变量转换为对象
- 如何使用 Javascript 将变量转换为字符串
- 在将会话变量转换为 javascript 变量时丢失特殊字符
- 如何在函数内将未定义的变量转换为对象
- 在按键和鼠标单击后将函数变量转换为全局变量
- 如何在javascript中将整数变量转换为字符串
- Javascript变量转换为Applescript