Javascript函数的所有参数都只按值传递
Are all parameters to Javascript functions passed only by value?
如果我有一个这样的变量:
我创建了一个类似ENUM的东西,像这样:
var ContentStatusId = {
All: 0,
Production: 1,
Review: 2,
Draft: 3,
Concept: 4
}
当我像这样调用函数时:
doTask(myParam) {
var a =
}
与doTask (ContentStatusId.All);
是否有任何方法,我可以找到任何关于传递给函数的参数,或者它是完全通过值传递?还有其他方法传递参数给函数吗?
在JavaScript中所有参数都是按值传递的。
如果是原始值,则该值为原始值。
function test(arg) {
console.log(arg);
}
test(1);
arg
的值为1。
但是如果你说
test({});
则arg
将包含一个值,该值是我们刚刚创建的对象的REFERENCE。
编辑地址注释
You can do…
doTask(myParam) {
if (myParam === ContentStatusId.Review) {
// Do stuff
}
}
doTask(ContentStatusId.Review);
或
doTask(myParam) {
switch(myParam) {
case ContentStatusId.Review:
// Do stuff
break;
}
}
javascript中没有通过引用传递的方法
所有东西都只按值传递
如
如果是原始值
e。g
var a = 10;
console.log(a); // 10
fun xyz(a); // passing a
function xyz(a) {
a += 10;
console.log(a); // 20
} // function will receive the value. If you modify it, It will still will not be reflected back to what you passed
console.log(a); // 10
反过来,
当你把一个对象传递给一个函数时,引用被复制。
e。g
var obj = { 'a': 10 };
console.log(obj.a); // 10
function xyz(obj) {
obj.a = obj.a + 10;
console.log(obj.a); // 20
} // here the obj will be copied as reference. So when you modify it, It will get reflected back to original object.
console.log(obj.a); // 20
相关文章:
- 函数未将值作为参数传递
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- javascript将函数中一个变量的参数值传递给父函数中的另一个
- 传递属性,而不是值作为参数
- 在函数中按值传递对象
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- Javascript :按值传递字符串
- setTimeout 按值传递数组(在咖啡中)
- JavaScript 处理参数按值传递
- 为什么这个数组是通过引用而不是按值传递的,我该如何改变它
- 我如何操纵日期拾取器值传递参数到url
- Javascript函数的所有参数都只按值传递
- Javascript数组按值传递不起作用
- jQuery事件绑定按值传递
- Web Workers——如果对象是按值传递的,内存使用量会翻倍吗?
- 是JavaScript按引用传递或按值传递
- React:如果值是按值传递的,那么为什么有必要拥有不可变的道具呢
- 变量赋值 - Javascript: array1[0] = array2[0];这是按值传递还是按引用传递
- 我想按值传递数组,但似乎它是通过引用传递的,数组上的 .map 操作没有给出预期的结果
- 按值传递JavaScript数组