Nhà điều hành instanceof
nên xem xét nguyên mẫu, phải không? Tại sao nó không thay đổi câu trả lời của nó sau khi nguyên mẫu của đối tượng đã được thay đổi? Ví dụ dưới đây:tại sao instanceof tiếp tục nói đúng sau khi nguyên mẫu thay đổi?
// 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???
Tại sao có thể 'prototype' của 'MyKlass' thay đổi nhưng không phải 'xx.prototype'? Arent cả hai 'MyKlass' và' xx' đối tượng? – zpzp
bạn có ý gì khi tắt tiếng? bạn có thể giải thích rõ hơn một chút không? –
@OliverWatkins Biến đổi một đối tượng là hoạt động chung của việc thay đổi lớp của nó. Hầu hết các ngôn ngữ OOP (hoặc POOP) không cho phép bạn làm điều đó bởi vì nó lộn xộn. –