如何通过Javascript中的任意属性制作具有无限深度的对象?

康斯坦丁·范

我只是很好奇,但是如何在 Javascript 中通过任意属性创建一个具有无限深度的对象这将是一件有趣的事情。

console.log(a); // is an object
for(let depth = 1; ; depth++)
{
    const arbitrary_property_name = Math.random().toString(36);
    console.log(a = a[arbitrary_property_name]); // is also an object
}
康斯坦丁·范

可以用Proxy来完成

let the_void = {};
the_void = new Proxy(the_void, {get: _ => the_void});

console.log(the_void); // Proxy {}
console.log(the_void.this); // Proxy {}
console.log(the_void.this.is); // Proxy {}
console.log(the_void.this.is.interesting); // Proxy {}
console.log(the_void.this.is.interesting.isn.t); // Proxy {}
console.log(the_void.this.is.interesting.isn.t.it); // Proxy {}
console.log(the_void.this.is.interesting.isn.t.it['?']); // Proxy {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

HashTable具有无限深度。为什么?如何避免?

JavaScript:访问具有无法定义的属性的对象

如何在Ruby on Rails中使用回形针制作具有无限图像的模型?

在Vue JS watcher中如何在没有无限循环的情况下更改对象的属性?

JavaScript - 具有无限循环的动态启动/停止功能

如何深度复制具有动态添加属性的对象?

如何在 express.js 中处理具有无限可能性的路由?

如何在finally块中停止具有无限循环的线程

如何启动具有无限内存的JVM?

从数组中删除具有无限值的行

Firefox中的丑陋字体具有无限性

如何从具有任意深度的深度嵌套的Hashtable中检索值?

在焦点侦听器中更改复合可绘制对象时,EditText具有无限触发的焦点更改事件

如何制作具有 RAII 属性的订阅者对象?

从任意深度的父/子关系中的所有对象中删除特定属性

具有无限参数的Java方法

具有无限参数的 UDF

具有无限/动态成员的枚举

具有无限参数的类 scala

具有属性的深度复制Javascript数组

通过id或具有O(1)的唯一属性访问JavaScript数组中的对象

如何在JavaScript中的另一个对象中查找具有属性的对象

是否可以创建具有无限无限滚动的网页?

如何实例化具有任意深度的多级哈希

如何通过Python中的for循环创建具有属性随机值的对象?

如何通过使用NSPredicate在数组的数组中查找具有特定属性的对象?

如何在可能具有可变结构的JavaScript对象中通过ID查找对象?

如何在一个元素具有无限宽度的行中排列元素?

如何构建具有无限循环的函数的后支配树?