我们有两个简单的方法–C#中的一种 Java 方法。这两个方法都得到一个参数,并在其后返回参数+ 1。我改变了这个例子来测试一个对象输入不是原始值。
C#(第一部分)
Java(第一部分)
JavaScript(第一部分)
另外,你可以看到我们的参数在调用函数总和后没有改变。
我们将param类型从整数更改为具有整数属性的类。
C#(第二部分)
Java(第二部分)
JavaScript(第二部分)
现在我们更改代码并在输入对象的sum方法中创建新实例:
C#(第三部分)
Java(第三部分)
现在我改变价值参考:
C#(第四部分)
Java(第四部分)
所以我们在这里有一个错误。你不能在Java中这样做,因为Java不支持指针…
但在JavaScript中:
1. JavaScript总是按值传递,但是当一个变量引用一个对象(包括数组)时,“值”是对该对象的引用。
2. 改变一个变量的值永远不会改变底层基元或对象,它只是将变量指向一个新的基元或对象。
3. 但是,更改由变量引用的对象的属性确实会更改基础对象。