Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';获取变量初始值的最快方法是什么?JS_Javascript_Html_Variables_Javascript Objects - Fatal编程技术网

Javascript 什么';获取变量初始值的最快方法是什么?JS

Javascript 什么';获取变量初始值的最快方法是什么?JS,javascript,html,variables,javascript-objects,Javascript,Html,Variables,Javascript Objects,我想得到我的一个对象的所有属性的初始值(我第一次定义的) 我想在比赛“结束”时这样做 我可以复制和粘贴属性,但对象相当大,我想知道这是否会让网站慢一点 谢谢 代码示例: var MyObject = { nestedObject1 : { //... }, nestedObject2 : { value1 : "Hi", value2 : 1 }, objectProperty : 2637 } 如

我想得到我的一个对象的所有属性的初始值(我第一次定义的)

我想在比赛“结束”时这样做

我可以复制和粘贴属性,但对象相当大,我想知道这是否会让网站慢一点

谢谢

代码示例:

var MyObject = {

    nestedObject1 : {
        //...
    },

    nestedObject2 : {
        value1 : "Hi",
        value2 : 1
    },

    objectProperty : 2637

}

如何将所有属性(或可能排除其中一个嵌套对象)恢复为初始值?

我不太清楚在运行结束时,您希望如何获得初始值。但最简单的方法可能是使用JSON将对象序列化为JSON

然后,在应用程序结束时,当您希望再次访问此原始对象时,可以将其重新水化为新的JavaScript对象:

original = JSON.parse(original);

在JS中无法获得变量的初始值。这会创建新对象吗?我不能真正使用它,因为我所有的代码都是用一个对象编写的。我的真实物体有很多球运动的矢量。矢量随重力以每秒60帧的速度变化。我需要每隔几秒钟获取初始对象属性。是的,这将最终创建原始对象的克隆。这里的优点是,您不需要逐个字段处理它,如果您愿意,您可以定义自定义序列化规则,以便在序列化或反序列化步骤中忽略某些字段。是否在不创建克隆的情况下执行此操作?除非您保证不会更改属性,否则不需要。如果更改其中一个值,则会被卡住,因为原始值不再存在-因此您需要以某种方式存储初始状态,该状态本质上是一个克隆。@Manu:如果您只是再次定义对象,则该对象就是一个克隆。。。。就在这时,您必须手动复制1乘1的所有属性值。如果不首先以某种方式创建对象的克隆,您绝对无法更改对象并将其与原始对象进行比较。我刚刚为您提供了创建此克隆的最简单方法。
original = JSON.parse(original);