0
これはなぜウィンドウオブジェクトではなく親クラスを指しているのですか? Klass関数の内部ではありません。別のコンストラクタが返されたときのJavascriptコンストラクタ関数からの戻り値
function Class() {
function Klass() {
this.color="blue"
}
Klass.prototype.value = this; // when called this is pointing to Class
console.log(this) // "Class"
return Klass;
}
var One = new Class(); // new constructor is returned
var Two = new One(); // creating new object
Two.value
- Class // why ?
あなたは '関数内this'は' Class.prototype'から継承空のオブジェクトを参照することができます '新しいクラス()'と呼ばれます。たぶん、あなたは 'var One = Class()'を呼びたいと思ったでしょうか?私はあなたが実際に知りたいことがわかりません... –
私は、クラスの関数からオブジェクトではなく、コンストラクタを返したいと思います。その結果は別のコンストラクタ(Klass)です。 – carousel
はい、これはコードがすでに行っていることです。この場合の 'new Class()'と 'Class()'の唯一の違いは、 'this'が参照するものです。なぜそれが 'Class'のインスタンスを参照しているのか尋ねました。なぜなら、' new Class() 'を呼び出すからです(ここでは' new'を使う理由はありませんが)。 –