最初のコード:
function MyConstructor() {}
var myobject = new MyConstructor();
MyConstructor.prototype = {};
[ myobject instanceof MyConstructor, // false - why?
myobject.constructor == MyConstructor, // true
myobject instanceof Object ] // true
MyConstructor.prototype
置き換えられてもmyobject
、プロパティはから継承されMyconstructor.prototype
ます。では、なぜmyobject instanceOf Myconstuctor
間違っているのでしょうか。
function MyConstructor() {}
MyConstructor.prototype = {};
var myobject = new MyConstructor();
myobject instanceof MyConstructor // true (it is because myobject still inherits from
// Myconstructor.prototype although it has been replaced)
2番目:
function MyConstructor() {}
MyConstructor.prototype = {};
var myobject = new MyConstructor();
myobject.constructor == MyConstructor; // false (accepted )
したがって、myobject.constructorがObjectである場合、最初の例ではそれを指していないのですが、最初の例では、それ以降、どのようにまだ指すことができますmyobject.constructor
か。MyConstructor
Myconstructor.prototype
これを明確にしていただけますか?