有兩種方式打字稿定義模塊:爲什麼TypeScript需要「this」。 「內部」模塊的前綴?
「單身」 生活:
import app = require("durandal/app");
import ko = require("knockout");
export var name = ko.observable();
export function sayHello() {
app.showMessage('Hello ' + name() + '! Nice to meet you.', 'Greetings');
}
「短暫」 的生活方式:
import app = require("durandal/app");
import ko = require("knockout");
class AnythingYouLike {
name = ko.observable();
sayHello() {
app.showMessage('Hello ' + this.name() + '! Nice to meet you.', 'Greetings');
}
}
export = AnythingYouLike;
我用引號我的名字對於這些不同的方式來定義一個模塊,因爲我無法弄清楚「官方」名稱是什麼。
使用「瞬態」風格,尤其是在使用像Durandal這樣的框架時,可以更好地控制viewmodel模塊的生活方式並避免尷尬的錯誤。一個缺點是,你必須在任何地方使用「this」,這有兩個問題:
- 將模塊從一種樣式更改爲另一種是很乏味的。
- 有
this.
灑到處都是嘈雜。
爲什麼實際上根本不需要使用this.
,爲什麼它在兩種樣式中都不需要?
是不是你在_Transient_風格的類的上下文中反對_Singleton_風格的函數?在類的上下文中調用'this.'在OOP中是很常見的?提前道歉。我可能很想理解你的問題。 – War10ck
是的,除了大多數語言允許它是隱含的,我不明白爲什麼它不能在這裏。 –
哇我的問題被拒絕了。我想知道爲什麼。如果可以,我很樂意改進它。 –