在给定时间将变量声明为函数值 - 而不是函数本身
Declare variable as function value at a given time - not the function itself
我正在尝试声明一个变量,其值 return 由一个函数编辑:
var myValue = hot.getSettings();
但是,当 getSettings() 的 return 值发生变化时,myValue 的值会不断变化。如何将 myValue 定义为 getSettings() 函数的 current 值,并将该值保存在 myValue 中,即使 getSettings 发生变化?
如果您想保留函数 hot.getSettings()
可能 return 的不同值,您需要将它们存储在某个地方,
对于前一个数组:
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
你的问题是 hot.getSettings(); return 引用不是变量的副本
所以你只需要克隆那个变量
试试这个:
var value = hot.getSettings();
var myValue = $.extend(true, {}, value);
希望对您有所帮助。
如果您已经在使用 Handsontable,则可以使用它的助手来快速完成此操作:
var snapshot = Handsontable.helper.deepClone(hot.getSettings());
这样您将创建设置对象的深层克隆,它不应再引用原始对象。
我正在尝试声明一个变量,其值 return 由一个函数编辑:
var myValue = hot.getSettings();
但是,当 getSettings() 的 return 值发生变化时,myValue 的值会不断变化。如何将 myValue 定义为 getSettings() 函数的 current 值,并将该值保存在 myValue 中,即使 getSettings 发生变化?
如果您想保留函数 hot.getSettings()
可能 return 的不同值,您需要将它们存储在某个地方,
对于前一个数组:
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
你的问题是 hot.getSettings(); return 引用不是变量的副本 所以你只需要克隆那个变量
试试这个:
var value = hot.getSettings();
var myValue = $.extend(true, {}, value);
希望对您有所帮助。
如果您已经在使用 Handsontable,则可以使用它的助手来快速完成此操作:
var snapshot = Handsontable.helper.deepClone(hot.getSettings());
这样您将创建设置对象的深层克隆,它不应再引用原始对象。