Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 在给定时间将变量声明为函数值,而不是函数本身_Javascript_Function_Variables_Handsontable - Fatal编程技术网

Javascript 在给定时间将变量声明为函数值,而不是函数本身

Javascript 在给定时间将变量声明为函数值,而不是函数本身,javascript,function,variables,handsontable,Javascript,Function,Variables,Handsontable,我试图用函数返回的值声明一个变量: var myValue = hot.getSettings(); 但是,当getSettings()的返回值更改时,myValue的值会不断更改。如何将myValue定义为getSettings()函数的当前值,并将该值保存在myValue中,即使getSettings发生更改?如果要保存函数hot.getSettings()可能返回的不同值,则需要将其存储在某个位置 对于数组: var arr = [] var myValue = arr[0] arr.

我试图用函数返回的值声明一个变量:

var myValue = hot.getSettings();

但是,当getSettings()的返回值更改时,myValue的值会不断更改。如何将myValue定义为getSettings()函数的当前值,并将该值保存在myValue中,即使getSettings发生更改?

如果要保存函数
hot.getSettings()
可能返回的不同值,则需要将其存储在某个位置

对于数组:

var arr = []
var myValue = arr[0]

arr.push(hot.getSettings());//push returns the length , and you could use that for naming a key in an object if needed 

你的问题有那么热。getSettings();返回一个引用,而不是变量的副本 所以你只需要克隆这个变量

试试这个:

var value = hot.getSettings();
var myValue = $.extend(true, {}, value);

我希望它会有所帮助。

如果您已经在使用Handsontable,您可以使用它的助手快速完成这项工作:

var snapshot = Handsontable.helper.deepClone(hot.getSettings());

通过这种方式,您将创建设置对象的深层克隆,该对象不应再引用原始对象。

究竟返回什么?
getSettings
返回什么…?是否从hot.getSettings()返回值,是否打印它返回什么?getSettings是在Handsontable中声明的getSettings函数。它保存可手持通话实例的当前设置。我试图做的是保存当前实例,但我保存的内容不断变化。你想复制一个对象:@user2806026你正在对你认为没有回答你的问题的答案进行向下投票,而不是对你标记为已接受答案的答案进行向上投票……这正是我开始做的事情,但是数组中的值一直在变化。@user2806026如果返回指向另一个某物的某物,则每当另一个某物发生变化时,也会发生变化;如果这是你的情况,最简单的解决办法是