Angularjs $性能最快的手表

Angularjs $性能最快的手表,angularjs,angularjs-scope,Angularjs,Angularjs Scope,写一块性能最好的$watch的方法是什么?我整理了一个jsperf,它似乎表明方法3实际上是最快的,但我想看看是否有人能想出一个更快的方法,或者指出我测试中的任何缺陷 方法1 方法2 方法3 这些是不同的。比较deep watch和shallow watch的性能是没有意义的,不是吗?我还怀疑您的方法3会给GC带来更大的压力。最终结果是一样的。我正在寻找最快的方法来知道obj.item1或obj.item2已经改变。任何适合你的方法。然而,方法3并没有扩展。如果现在您需要查看3个属性或重命名其中

写一块性能最好的$watch的方法是什么?我整理了一个jsperf,它似乎表明方法3实际上是最快的,但我想看看是否有人能想出一个更快的方法,或者指出我测试中的任何缺陷

方法1 方法2 方法3
这些是不同的。比较deep watch和shallow watch的性能是没有意义的,不是吗?我还怀疑您的方法3会给GC带来更大的压力。最终结果是一样的。我正在寻找最快的方法来知道obj.item1或obj.item2已经改变。任何适合你的方法。然而,方法3并没有扩展。如果现在您需要查看3个属性或重命名其中一个属性,该怎么办?你需要触摸密码。其他两种方法没有这样的问题。这很可能不是你关心的问题,只是指出这一点。顺便说一句,我的+1用于测量。
var obj = {item1: 'a', item2: 'b'};
//deep watch on obj
$rootScope.$watch(function() {
    return window.obj
 }, function() {}, true);
//deep watch on obj that is on scope
$rootScope.obj = obj;
$rootScope.$watch('obj', function() {}, true);
//create a hash of all of the values from obj, do a shallow watch
rootScope.$watch(function() {
    return obj.item1 + '-' + obj.item2;
}, function() {});