let person = {name: "Annah", age: 18};
let pointer = person;
pointer = undefined;
人不会变成undefined,只是指针?
最佳答案
您可以使用包装对象模拟该行为:
const reference = value => ({
value,
free() { this.value = undefined },
});
const val = ref => ref.value;
let person = reference({name: "Annah", age: 18});
let pointer = person;
console.log(val(person));
pointer.free();
console.log(val(person));
因此您无法再访问 person.name
,您必须使用 val(person).name
取消引用它。
理论上,您可以创建两个引用同一事物的变量:
with({
person: undefined,
get pointer() { return this.person; },
set pointer(value) { this.person = value },
}) {
person = { some: "test" };
console.log(pointer);
pointer = undefined;
console.log(person);
}
但是请不要那样做(除非是为了好玩)。
关于javascript - 是否可以通过指针使对象为 null 或 undefined ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53995977/