日志:未捕获的范围错误:超过了最大调用堆栈大小
Log : Uncaught RangeError: Maximum call stack size exceeded
我有一个关于方法的严重问题。这就是我的方法:
Object.prototype.clonage = function() {
var newObj = (this instanceof Array) ? [] : {};
for (i in this) {
if (i == 'clone') continue;
if (this[i] && typeof this[i] == "object") {
newObj[i] = this[i].clonage();
} else newObj[i] = this[i]
} return newObj;
}
浏览器给了我:
未捕获范围错误:超出的最大调用堆栈大小
在线路上:
for (i in this) {
有人会有同样的问题吗?
如果这是任何类型的成就,我可以创建可以破坏克隆函数的javascript对象:)。
检查:http://jsfiddle.net/Bd6XL/2/
var x = {
a: 5,
b: "asdf"
};
var y = {
a: 5,
b: "asdf"
};
x.y = y;
y.x = x;
克隆其中任何一个。是的,由于循环引用,它不起作用。试着调试对象,看看是否有任何循环引用。
同时,尽量将你的克隆限制在你真正需要的范围内。
编辑:
看看这个关于克隆的问题:在JavaScript中深度克隆对象最有效的方法是什么?
有不少答案。如果您使用jQuery:,请尝试已接受的
// Shallow copy
var newObject = jQuery.extend({}, oldObject);
// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);
相关文章:
- Javascript在实现时似乎跳过了一行(如果count==1)
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- Hammer.js过了一段时间就停止工作了
- grunt contrib jshint-error在定义之前就已经使用过了
- 进行自动实时聊天/虚假聊天,我的javascript跳过了第一个响应
- 再次调用时跳过了 Ajax
- “book”已定义,但从未使用过 MEAN 堆栈控制器
- 我试过了,但调用成员单击不适用于输入按钮,它与其他按钮非常不同
- 窗口位置不起作用,我已经尝试过了
- 引导程序下拉不起作用.什么都试过了..(引导2.3.2)
- 为什么将一个值推入我的数组被跳过了
- 七吃九:为什么我的索引8在这个d3选择中被跳过了
- 为什么这个复选框不触发jquery代码onchange?我什么都试过了,但都不起作用
- jQuery不工作-'jQuery在定义之前就已经使用过了;
- getElementById有时为null.已经试过了.加载完毕.准备好了
- 多个ajax请求过了一段时间不起作用
- 在javascript中跳过了一个特殊的条件
- 引导旋转木马不工作!都检查过了,还是不行
- AJAX调用跳过了发送一些参数,或者PHP丢失了一些参数
- 如何制作完全属于自己的编程语言?我试过了.(并# 39;t工作)