我想知道这样做是否有好处:
<div>{{getSomething()}}</div>
export class MyComp {
getSomething() { return ...}
}
关于这件事:
<div>{{getSomething}}</div>
export class MyComp {
get getSomething() { return ...}
}
使用方法vs getter来显示计算出的数据.
我想知道这样做是否有好处:
<div>{{getSomething()}}</div>
export class MyComp {
getSomething() { return ...}
}
关于这件事:
<div>{{getSomething}}</div>
export class MyComp {
get getSomething() { return ...}
}
使用方法vs getter来显示计算出的数据.
我更深入地研究了这一点,并在操场上玩了打字游戏.
让我们看看它是什么样子:
在第一个示例中,我们声明了一个通过以下方式获取属性值的方法:
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
getGreeting() {
return this.greeting;
}
}
翻译成javascript后,它看起来像:
var Greeter = (function () {
function Greeter(message) {
this.greeting = message;
}
Greeter.prototype.getGreeting = function () {
return this.greeting;
};
return Greeter;
}());
关于第二个例子,我们用以下方式声明了一个getter:
class GetterGreeter {
_greeting: string;
constructor(message: string) {
this._greeting = message;
}
get greeting() {
return this._greeting;
}
}
翻译后看起来像:
var GetterGreeter = (function () {
function GetterGreeter(message) {
this._greeting = message;
}
Object.defineProperty(GetterGreeter.prototype, "greeting", {
get: function () {
return this._greeting;
},
enumerable: true,
configurable: true
});
return GetterGreeter;
}());
(您可以使用声明和javascript here的翻译)
正如您在get方法中看到的(如第一个示例中所示),该方法在原型上声明,在第二个示例中,使用getter模式typescript使用defineProperty api.
在这两种情况下,我们都会调用一个方法,angular也会在其更改检测期间调用一个方法,以识别更改并重新渲染.
在我看来,这只是同一种方法的语法优势,我看不出其中一种方法有任何性能优势.