gpt4 book ai didi

javascript - 是否有可能用JavaScript中的其他内存覆盖变量指向的内存?

转载 作者:行者123 更新时间:2023-11-28 17:40:31 25 4
gpt4 key购买 nike

假设我有一个指向该内存的变量,我实际上可以将该内存更改为全新的内存,以便指向该内存的所有其他变量现在都指向新内存吗?

var foo = function(obj){
// I want to set obj to new memory
obj = { bar: 'foo' }
}
var boo = function(obj){
// can change properties to new memory
obj.too = { hoo: 'doo' }
}

var zoo = { too: { woo: 'loo' } }

// no change of memory
console.log(zoo)
foo(zoo)
console.log(zoo)

// change of memory
console.log(zoo)
boo(zoo)
console.log(zoo)

最佳答案

简短的回答是"is"。当您有一个对象时,对该实例的任何/所有引用都将访问该实例的当前状态。但是,请理解,您可以拥有同一对象的多个实例,并且您对一个实例所做的操作可能不会影响其他实例。

这是一个更简化的示例:

var zoo = { 
location: "San Diego"
};

function getReference(){
// All invocations of this function will get a reference to same instance
return zoo;
}

var o1 = getReference(); // reference to zoo instance is returned
var o2 = getReference(); // 2nd reference to zoo instance is returned

console.log(o1.location, o2.location); // San Diego, San Diego
o2.location = "NYC";
console.log(o1.location, o2.location); // NYC, NYC

// But, a reference to a different instance won't affect the others
var o3 = Object.create(zoo);
o3.location = "Washington DC";
console.log(o1.location, o2.location, o3.location); NYC, NYC, Washington DC

关于javascript - 是否有可能用JavaScript中的其他内存覆盖变量指向的内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48055367/

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