我需要练习一些数据映射函数的代码.为此,我需要一个代理,当请求任何属性时,它返回一个具有一个元素(本身;一个可迭代数组)的可迭代array.这将激活数据映射器层(此处未显示)中的所有循环和属性判断.
大概是这样的:
p = new Proxy([], {
get(obj, prop) {
if(prop === 'length') return obj.length
if(prop === 'push') return obj.push
if(p.length === 0) p.push(p)
return p
}}
)
这是一个良好的开端:
> p.any.length
1
但在这里失败了:
> for(let v of p.any){console.log(v)}
Uncaught TypeError: p.any is not iterable
我需要循环来迭代和sole.log一个元素:
> p.any
Proxy [
<ref *1> [ Proxy [ [Circular *1], [Object] ] ],
{ get: [Function: get] }
]