我一直在寻找这个,但找不到我想要的简单问题。问题非常简单:在角度js中,我应该使用局部变量还是属性(如果我不需要使用它)。
示例:
// I need "this" here because I need this collection in template
this.collection = SomeService.fetchCollection();
// I can use either "foo" or "this.foo" here, which one is better?
this.fetchSomeData = function(type) {
var foo = AnotherService.foo(type);
return FooService.call(foo);
}
答案 0 :(得分:1)
因为你没有将'foo'声明为var,所以这里是全局的,这很糟糕。你应该至少在它前面加上'var',这样它的作用域就是函数而不是全局的;它不应该在函数之外可用。
答案 1 :(得分:0)
一个局部变量,因此可以在方法退出时立即清除。否则它将在父命名空间中保持未使用状态。
但是99%的案例没有现实世界的影响,所以它并不重要。
答案 2 :(得分:0)
在我看来,不要透露所有内容并保持封装是一个好习惯 - 例如,它避免移动逻辑来查看哪个是坏的
另外,请考虑您对for
变量进行i
循环迭代 - 您是否也会将this.i
用于此目的?