将对象传递到相同范围内的功能缓慢?

时间:2016-01-12 19:12:50

标签: javascript angularjs

绕过同一范围内的对象会花费任何明显的延迟吗?考虑下面的选项1和选项2。在第一个选项中,我只是直接使用对象。选项2是更好的封装实践,但是让我说我​​无论如何都在相同的范围内进行 - 这是否更慢(假设具有数百个属性的大型对象数组)?

var sampleObject = {id:2, objString = 'something'};

选项1:

function addPropToObject(){
 sampleObject.someNewProp = 'lalala'
}

选项2:

function addPropToObject(obj){
 obj.someNewProp = 'lalala'
}

addPropToObject(sampleObject);

如果函数是:

,则AngularJs标签就是存在的
$scope.adPropToObject = function(){....

虽然它不应该是重要的。如果你能想到更好的标题,请随意更改标题。

1 个答案:

答案 0 :(得分:2)

这完全取决于JS引擎的实现方式。选项1可能会更慢,因为它必须向上移动一个(或多个)范围才能找到sampleObject。选项2可能会更慢,因为它必须将sampleObject推入堆栈并在访问obj时将其拉出。您可以自己编写jsPerf并测试响应时间。