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

时间:2016-09-14 07:43:30

标签: javascript function variables handsontable

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

var myValue = hot.getSettings();

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

3 个答案:

答案 0 :(得分:0)

你的问题就是hot.getSettings();返回引用而不是变量的副本 所以你只需要克隆那个变量

试试这个:

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

我希望它会有所帮助。

答案 1 :(得分:0)

如果你已经使用Handsontable,你可以使用它的助手来快速实现:

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

这样你就可以创建一个设置对象的深层克隆,它不应再引用原始对象。

答案 2 :(得分:-1)

如果你想保留函数hot.getSettings()可能返回的不同值,你需要将它们存储在某个地方,

for ex a Array:

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