我很好奇在Angular 4中这两个函数之间的区别:
get currentIndex(): number {
return `Current Index is ${this.index}`;
}
public currentIndex(): number {
return `Current Index is ${this.index}`;
}
它们是否完全做相同的事情?如果不是,什么时候它们会执行不同的操作?
我很好奇在Angular 4中这两个函数之间的区别:
get currentIndex(): number {
return `Current Index is ${this.index}`;
}
public currentIndex(): number {
return `Current Index is ${this.index}`;
}
它们是否完全做相同的事情?如果不是,什么时候它们会执行不同的操作?
getter/setter
与方法相比更与属性相关,因此最好将getter/setter
与普通属性进行比较。
调用getter/setter
与任何普通属性的方式相同,只实现getter
意味着只读属性,而只实现setter
意味着只写属性。
getter和setter为直接与属性交互添加了额外层,例如
class Person {
private _age:number;
public get age() {
//... do something
retutn this._age;
}
public set age(value) {
if (value >0){
this._age = value
}
}
}
从上面的例子中,我们可以防止分配无效的年龄值。
在Angular中,如果我们想要在模板中显示一个名为age的getter属性,那么像这样 {{age}}
,但是如果age是一个函数,则会像这样 {{age()}}
正如我之前提到的,最好将getter/setter
视为属性而不是方法
根据您的示例:
get currentIndex(): number {
return `Current Index is ${this.index}`;
}
currentIndex
与currentIndex()
- 同时允许您稍后添加逻辑,如果您需要执行诸如计算之类的操作。