this
について質問があり、クラスには通常の変数があります。 、だから私はnewthingy
がid
が何であるか見当がつかないということを理解し"this"コンテキストを持つクラスの変数を受け入れる
class Thingy {
constructor(thing) {
let id = thing
}
printID() {
console.log(id)
}
}
let newthingy = new Thingy("ID1")
let newthingy2 = new Thingy("ID2")
newthingy.printID()
newthingy2.printID()
:
class Thingy {
constructor(thing) {
this.id = thing
}
printID() {
console.log(this.id)
}
}
let newthingy = new Thingy("ID1")
let newthingy2 = new Thingy("ID2")
newthingy.printID()
newthingy2.printID()
このようなものはないでしょうが、うまく働く:
通常、我々はこのような何かを元のクラスのプロトタイプでプロトタイプチェーンを見上げるだけではありませんか?私はそれがおそらく右id
を得ることはないだろうが、id not defined error
を得るには、最初にプロトタイプのチェーンを調べるべきですか?
「var」のようなものを考えてみましょう。あなたが関数を持ち、 'var something = '何らかの文字列'; 'を定義すると、' something'はそのメソッドの外部からアクセスできません。クラスの文脈で 'this'を使うと、クラスのどこからでもアクセスすることができます。 –
2番目のスニペットでもvarと同じになります。 2番目のスニペットでletを使って達成しようとしていることは何ですか? – karthick
このhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/letを参照してください。 –