gpt4 book ai didi

javascript - 如何影响传递给函数的字符串对象

转载 作者:行者123 更新时间:2023-11-30 15:48:17 24 4
gpt4 key购买 nike

这是一个非常非常基本的问题,但出于某种原因,我正在苦苦挣扎,找不到很好的引用资料。

假设我有这段 JScript 代码在 WSH 下运行:

function func(myStr) {
var res = "abc";
myStr = res;
}

function main() {
var myStr = new String();

WScript.Echo(myStr);
func(myStr);
WScript.Echo(myStr);
}

main();

我将 String 对象传递给 func 并期望 func 设置对象的值。但是,func 使用 operator = 复制内容但生成新引用

我查看了这篇文章,How do I correctly clone a JavaScript object? ,但找不到我要找的东西。

对此我们有简单直接的解决方案吗?

最佳答案

最主要的是:对象是通过引用传递的。其他的东西,比如字符串、数组、数字……都是按值传递的。

每次将字符串传递给函数时,只会将其值的副本传递给该函数(因此不要将字符串对象视为对象,不要询问克隆。)。但是与原始变量的任何链接都丢失了。

对象,另一方面,当你将它们传递给一个函数时,对象的地址(指针/引用)被传递给函数,所以它在内部和外部是同一个变量。因此,函数内部对象发生的任何事情都会影响外部对象(也)。

现在,看一段类似的代码,但带有传递对象

var myObject = {};
myObject.txt = 'Foo';
console.log(myObject.txt);
func(myObject);
console.log(myObject.txt);

function func(obj) {
obj.txt = 'Hello World';
}

关于javascript - 如何影响传递给函数的字符串对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39748851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com