Node.js:如何在实践中通过引用传递函数参数

Node.js how to pass function argument by reference in practice

提问人:MatrixRonny 提问时间:11/16/2023 更新时间:11/16/2023 访问量:12

问:

我发现了以下关于如何使用内置 JavaScript 功能通过引用传递参数的建议:
[Javascript] 在 JavaScript
中按值传递和按引用传递 TypeScript 按 ref 参数传递 [duplicate]

但是,它们在实践中都不起作用。请考虑以下代码示例:

let data = {
    prop1: '[1,2,3]',
    prop2: '{"abc":"def"}'
}

function parseString(ref prop) {
    if(typeof prop === 'string') {
        prop = JSON.parse(prop);
    }
}

parseString(data.prop1);
parseString(data.prop2);

使用装箱方法不起作用,因为该框将包含副本,而不是对原始属性的引用。{item: data.prop1}data.prop1

如何正确实现上述示例?

JavaScript 节点 .js 按引用传递

评论


答:

0赞 MatrixRonny 11/16/2023 #1

实现函数的一种方法是指定父对象和字符串来指示引用的属性。下面是实现该示例的代码:parseString

function parseString(data, propName) {
    if (!Object.keys(data).includes(propName)) {
        throw new Error(`Object does not contain key ${propName}.`);
    }

    if(typeof prop === 'string') {
        data[propName] = JSON.parse(data[propName]);
    }
}

parseString(data, 'prop1');
parseString(data, 'prop2');