private聲明的屬性在類內(nèi)部訪問會報錯
按照老師視頻里敲的,這沒有問題,不會報錯
但是我給name改一個名字,ts就報錯了
報錯信息是這樣的:
所以改成this.aaa ,這個報錯就會消失。
我的問題是,這是為什么呢?用name就不會報錯,不會提示this.name。然后這里的this又是什么含義呢
按照老師視頻里敲的,這沒有問題,不會報錯
但是我給name改一個名字,ts就報錯了
報錯信息是這樣的:
所以改成this.aaa ,這個報錯就會消失。
我的問題是,這是為什么呢?用name就不會報錯,不會提示this.name。然后這里的this又是什么含義呢
2017-11-24
舉報
2017-11-27
this. 可以簡單的理解為在本對象內(nèi)找“.”后面指定的屬性或方法。在你提到的這個例子中,是需要加了this.才是正確寫法。
對于為什么name這么這與不錯報,而別的名字會報錯。那是因為在這個TypeScript運行環(huán)境中,已經(jīng)有一個全局的name變量被定義,你在沒加this.的時候,用的其實是那個全局的name。用了ggg和aaa不行,是因為全局中沒有人幫你定義這兩個全量。
實際上,在代碼中用那個不加this. 的name,后面的代碼是打印不出你期望的名字的。
你注意看8-1章節(jié)4:54~4:55這一秒鐘。
在4:54之前,那個寫法實際是不對的,那個eat()中用的name,實際不是上面這個Person類中定義的name。在4:55之后被改過了。看起來授課老師在視頻中悄悄改了,但沒有提示大家。