绕过同一范围内的对象会花费任何明显的延迟吗?考虑下面的选项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(){....
虽然它不应该是重要的。如果你能想到更好的标题,请随意更改标题。
答案 0 :(得分:2)
这完全取决于JS引擎的实现方式。选项1可能会更慢,因为它必须向上移动一个(或多个)范围才能找到sampleObject
。选项2可能会更慢,因为它必须将sampleObject
推入堆栈并在访问obj
时将其拉出。您可以自己编写jsPerf并测试响应时间。