混乱があったため、ここから移動することをお詫びします。間違いに気付くためにこれに答えてくれたグレイに感謝します。このトピックは Javascript: Behaviour of {} に移動され、さらに議論されました。
「{}」を使用したシングルトン パターン。ここにそれがどのようにある:
var A = {
B : 0
};
// A is an object?
document.write("A is an " + typeof A);
オブジェクトのクローンを作成してみましょうA
var objectOfA = new Object(A);
objectOfA.B = 1;
//Such operation is not allowed!
//var objectOfA = new A();
var referenceOfA = A;
referenceOfA.B = -1;
document.write("A.B: " + A.B);
document.write("<br/>");
上記referenceOfA.B
は object の参照を保持しているA
ので、 の値を変更するとreferenceOfA.B
必ず に反映されA.B
ます。
document.write("referenceOfA.B: " + referenceOfA.B);
document.write("<br/>");
クローンが正常に作成された場合、objectOfA
値を保持する必要があります1
document.write("objectOfA.B: " + objectOfA.B);
document.write("<br/>");
結果は次のとおりです。
A はオブジェクトです
AB: -1
referenceOfA.B: -1
objectOfA.B: -1
ここまではすべて明確ですが、オブジェクトがinstanceof
それを引き継ぐ必要があります。ただし、ここで使用しようとすると、例外が発生instanceof
します。A
なんで?