JS参数传递只能是按值吗?

下面是我看到的js参数传递的方法,其中说js只有按值传递

 

以上是我在《javascript高级程序设计》中看到的。然后我用C#写了下面这段代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace refTest
{
   
    class Program
    {
        static void SomeFunction(int[] ints, int i)
        {
            ints[0] = 100;
            ints = new int[] { 3, 4, 5, 9, 8 };
            i = 100;
        }
        
        static void Main(string[] args)
        {
            int i = 0;
            int[] ints = { 0, 1, 2, 4, 8 };
            Console.WriteLine("i = " + i);
            Console.WriteLine("ints[0] = " + ints[0]);
            Console.WriteLine("Call SomeFunction.");

            SomeFunction(ints, i);
            Console.WriteLine("i = " + i);
            Console.WriteLine("ints[0] = " + ints[0]);
        }
    }
}

 

结果发现和JS中的情形是一样的,难道C#的引用类型不是按引用传递的吗?


qq_花开花谢_0
浏览 503回答 2
2回答

偶然的你

最讨厌纠结中文的表达的一些概念了,多少人绕不出来啊。你可以尝试在c#中写第二个示例,结果是不成立的,是有区别的。
打开App,查看更多内容
随时随地看视频慕课网APP