L'operatore instanceof
dovrebbe guardare il prototipo, no? Perché non cambia la sua risposta dopo che il prototipo dell'oggetto è stato modificato? Esempio di seguito:perché instanceof continua a dire true dopo il prototipo modificato?
// The .prototype of objects created with 'new MyKlass'
// is MyKlass.prototype
var MyKlass = function(name, age) {
this.name = name;
this.age = age;
}
var xx = new MyKlass('xx', 20);
console.log(xx instanceof MyKlass); // true, OK
xx.prototype = new String('s');
console.log(xx instanceof MyKlass); // also true, WHY???
Perché può 'prototype' di' MyKlass' cambia ma non 'xx.prototype'? Arent entrambi gli oggetti 'MyKlass' e' xx'? – zpzp
cosa intendi per muto? puoi spiegare un po 'meglio? –
@OliverWatkins La mutazione di un oggetto è l'operazione generale di modifica della sua classe. La maggior parte delle lingue OOP (o POOP) non ti consente di farlo perché è disordinato. –