【发布时间】:2021-07-23 08:04:01
【问题描述】:
我有一个网络应用程序,用户可以在其中点击一个按钮来copy 一个引擎对象。
我用 Javascript 编写了下面的方法,它可以工作。但是,如果克隆的用户超过 2 或 3 个,则会弹出随机错误。例如,它会说,Engine is undefined 或 engineToClone is undefined。
但如果只有一个人在做,它永远不会出错。
所以我想知道是否有更好的方法来写这个:
var engineToClone = this.model;
var clonedEngine = new Engine({
factoryId: engineToClone.attributes.factoryId,
title: 'CLONED OF - ' + engineToClone.attributes.title,
engineDescription: engineToClone.attributes.engineDescription,
isFrontend: engineToClone.attributes.isFrontend,
cylinders: engineToClone.cylinders,
headers: engineToClone.headers,
vehicles: engineToClone.vehicles,
pistons: engineToClone.pistons,
fuels: engineToClone.fuels
});
clonedEngine.save(null, {
url: self.factory.url()
}).done(function () {
});
我试过这样做,但它会生成空值:
var engineToClone = this.model;
var clonedEngine = engineToClone;
但是 clonedEngine 总是返回为 null。
我也在这里阅读了使用 json 的答案,所以我尝试了这个:
JSON.parse(JSON.stringify(engineToClone))
但它总是说 JSON 未定义。
所以我一定是做错了什么,我希望有人能指出我正确的方向。
谢谢!
【问题讨论】:
-
JSON 未定义?您使用的是什么运行时/浏览器?你在使用兼容模式吗?
-
@JacobLockwood 谢谢,我正在使用最新版本的火狐。它处于兼容模式。
-
那一定是你的问题... 在兼容模式下,JSON 没有定义,因为它在 IE 7 及更低版本中不受支持。只需关闭兼容模式即可。