我想知道 JavaScript 是否有功能深度限制。我这么问是因为我正在开发一个复杂的应用程序,不幸的是,我们无法更改数据结构。
例如,如果我尝试引用一个变量,例如:
Thi.sIs.An.Except.ionally[345].LongF.unct.ional[z].Refer.ence.Thats[23].Sev.eral.Lay.ers[96].Deep
有时我可以设置和获取 Deep
结构及其成员的值(如果它位于同一窗口中),但如果我将此元素包含在另一个类中或尝试从另一个页面引用它,并且设置 Deep 的成员,然后 deep 稍后为其每个成员返回 null 或未定义。浏览器不会抛出错误,我只是得到意外的行为。
编辑:我想添加,我正在尝试从同一域上至少三层以下的嵌套框架引用Deep
。例如,框架需要引用框架Course
中的Deep
,该框架位于主框架下方两层,但位于需要访问它的框架的单独分支上。我们继承的应用程序使用框架,但这些可以更改为 iframe。将它们更改为 iframe 也可以吗?
parent.Topic.Course.Thi.sIs.An.Except.ionally[345].LongF.unct.ional[z].Refer.ence.Thats[23].Sev.eral.Lay.ers[96].Deep
我在这里缺少什么吗?或者某种有关 JavaScript 功能深度的引用?
最佳答案
对于嵌套对象的距离似乎没有任何限制(或者如果有的话,它也非常高)。这段代码工作正常(注意我在 Chrome 中测试过它):
var ctr=1, obj={};
while( ctr < 1000000 ){ // 1 million
obj = obj.obj = {}; ctr++;
};
我感觉您的问题与您尝试“从另一个页面”访问此内容有关。你能发布相关的代码吗?
关于JavaScript 函数引用深度限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15974942/