let test1: number = 123;
let test2: { obj1: number } = { obj1: 456 };
const testFun: Function = ({ testArg, testObj }: {
testArg: number,
testObj: { obj1: number },
}): void => {
testArg = 321;
console.log('testFun log testArg: ' + testArg);
testObj.obj1 = 654;
console.log('testFun log testObj: ');
console.log(testObj);
}
testFun({ testArg: test1, testObj: test2 });
// 输出:
// testFun log testArg: 321
// testFun log testObj:
// {obj1: 654}
console.log('===============分割==============');
console.log('outter test1: ' + test1);
// 输出 123
console.log('outter test2: ');
console.log(test2);
// 输出 654
我以为 test1 在外部也会被赋值为 321,但是并没如此。
如果整体是一个对象形式传递的参数,为什么 test1 没被函数 testFun 改变呢?
请大家解答一下
因为
等价于
等价于