在相同范围内传递对象是否会造成任何明显的延迟?考虑下面的选项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(){....


尽管imo根本不重要。如果可以想到更好的标题,请随时更改标题。

最佳答案

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

10-06 11:58