javascript - 是否可以通过指针使对象为 null 或 undefined ?

标签 javascript pointers

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/

相关文章:

javascript - 如何使javascript计时器重新加载

php - AJAX 无法正常提交表单

c++ - 指向字符混淆的指针

C++解构指针数组

c++ - 保证有效的字符串作为函数参数

javascript - 理解关于启动 jQuery 的一句话

javascript - 使用 HTML5 文件 API 上传 swf 并获取宽度和高度

javascript - Cytoscape 事件 cxtap 被多次调用

c - 从函数返回指针作为静态变量

c - 在声明过程中初始化指针的值