我有一个每 1 秒调用一次的函数。
var latestObject; //this updated separately, it depends on user input so it may not be different every second
var previousObject;
function Tick(object) {
if (latestObject !== previousObject) { //Problem is here
previousObject = latestObject; //or here
//do stuff with latestObject;
}
}
但是,当latestObject
更新它的属性时,变量不会设置为不同的对象。所以 previousObject 和 latestObject 总是相等的,do stuff
永远不会发生。
我可以:
function Tick(object) {
var latestObjectString = JSON.stringify(latestObject);
if (latestObjectString !== previousObject) { //Problem is here
previousObject = latestObjectString; //or here
//do stuff with latestObject;
}
}
但是我JSON.stringify
每秒做一次,这似乎效率低下,特别是因为 latestObject 很大而且很深。
将previousObject 设置为latestObject 的副本不是更好吗,这样当latestObject 上的属性发生更改时,previousObject 保持不变,然后这只发生在对象不同的情况下,而不是每秒发生一次?但是不会有一个copyOfObject == Object
永远不会发生的问题吗?
(对象主要是属性,但有一些永远不会改变的功能)。
(没有 jQuery)