根本数据类型传递形式

因为js中存在简单类型根本类型,对于根本类型而言,是按值传递的

    var a = 1;     function test(x) {        x = 10;         console.log(x);     }    test(a); // 10     console.log(a); // 1

尽管在函数 testa 被批改,并没有有影响到 内部 a 的值,根本类型是按值传递的.

简单类型按援用传递?

咱们将内部 a 作为⼀个对象传⼊ test 函数.

    var a = { a: 1, b: 2 };    function test(x) {         x.a = 10;         console.log(x);     }    test(a); // { a: 10, b: 2 }     console.log(a); // { a: 10, b: 2 }

能够看到,在函数体内被批改的a对象也同时影响到了内部的a对象,可⻅简单类型是按引⽤传递的.

可是如果再做⼀个试验:

    var a = {        a: 1,        b: 2    };     function test(x) {        x = 10;         console.log(x);     }    test(a); // 10     console.log(a); // { a: 10, b: 2 }

内部的 a 并没有被批改,如果是按引⽤传递的话,因为共享同⼀个堆内存, a 在内部也会体现为 10 才对. 此时的简单类型 同时体现出了按值传递按引⽤传递的个性