在相同范围内传递对象是否会造成任何明显的延迟?考虑下面的选项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并自己测试响应时间。