重要的是,将回调函数的参数分配给新的局部变量然后使用它们吗?例如:
$scope.$on('someEvent', function(event) {
var _data = event.data;
console.log(_data); //method 1
console.log(event.data); // method 2
});
有些Javascript开发人员更喜欢使用method1
。那是因为表演还是什么?
答案 0 :(得分:3)
经验法则是每当它更具可读性时就这样做。除非您处理非优化代码,否则javascript中没有太多性能问题。最难的部分是可读性。
我想到的一个场景是,如果项目上有一个通用的回调函数:
版本1:
$myMap.load(function(event) {
setView(event.target.data.initial.x, event.target.data.initial.y);
...
filterLabels(event.target.data.initial.filters);
});
版本2:
$myMap.load(function(event) {
var savedData = event.target.data.initial;
...
setView(savedData.x, savedData.y);
...
filterLabels(savedData.filters);
});
个人而言,一旦我觉得最终的读者更容易理解正在发生的事情,我更愿意将参数保存到变量中。为了便于阅读而不是为了表现,我会更频繁地使用它。
答案 1 :(得分:0)
我觉得缩小了。如果将参数分配给变量,则可以缩小变量,即a
,这会减小代码的大小。仅在多次调用参数时才有用。
答案 2 :(得分:0)
在您的示例中并不重要但有用,因为此对象中的更改将应用于使用此对象的所有函数。
function foo (obj)
{
obj.a+=1;
}
var obj = {
a:1
}
foo(obj);
foo(obj);
//obj.a=3;