如果我创建一个对象,然后设置另一个等于该对象的变量,它只是一个指向原始对象的指针.有没有办法判断变量是否只是一个引用,如果是,确定原始变量名称?
例如,如果我想json编码一个具有引用回原始对象的属性的对象,它会创建一个无限循环.我想测试一个属性是否是一个引用,如果是这样,只需将其标记为这样,而不重写同一个对象.
var foo = {'some': 'object'};
var bar = foo;
Run Code Online (Sandbox Code Playgroud)
在此之后,foo并且bar是完全一样的,如"它们都指向同一个对象".但除此之外,foo和之间没有关系bar,所以bar不是foo对同一个对象的引用.所以答案是"不",因为JavaScript没有引用其他变量.
但是,要检查循环依赖关系 - 这是您在示例中实际需要/想要的东西 - 这个问题还有其他各种更合适的解决方案:有没有办法在JavaScript中测试循环引用?
此外,使用本机JSON编码JSON.stringify()已经检查:
>>> var obj = {};
>>> obj.x = obj;
>>> JSON.stringify(foo)
TypeError: cyclic object value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |