Tất cả các lớp nguyên cảo của chúng tôi thừa hưởng (trực tiếp hoặc gián tiếp) từ:nguyên cảo MyObject.instanceOf()
export class WrObject {
className:string;
public instanceOf(name : String) : boolean {
return this.className === name;
}
}
Chúng tôi sau đó khai báo một lớp con như:
export class Section extends WrObject {
public static CLASS_NAME = 'Section';
className = Section.CLASS_NAME;
public instanceOf(name : String) : boolean {
if (this.className === name)
return true;
return super.instanceOf(name);
}
}
Và sau đó bạn có thể kiểm tra với:
if (obj.instanceOf(Section.CLASS_NAME))
Tất cả đều hoạt động tốt. Tuy nhiên, tôi nghĩ nó sẽ sạch hơn nếu chúng ta có thể làm:
if (obj.instanceOf(Section))
Có cách nào để làm điều đó không? Hoặc bất kỳ đề xuất như một cách tiếp cận tốt hơn?
cảm ơn - dave
tôi nghĩ (không thể tìm thấy bài ở đây bây giờ) rằng việc sử dụng instanceof được nản chí trong nguyên cảo như là không chính xác. Tôi đã hiểu lầm các chủ đề khác? –
phụ thuộc. Bạn không có kế hoạch sử dụng 'instanceof' trên một' null' là bạn? ;) + không đáng tin cậy giữa các iframe (nó không giống 'Foo.prototype' trong mỗi khung nếu bạn kiểm tra bằng tham chiếu đó là những gì điều này đang làm bên dưới). Có lẽ vấn đề tương tự trong webworkers nhưng tôi không chắc chắn – basarat
Với nulls - no. Trong công nhân web - có ở mọi nơi. Và với các đối tượng được tạo trong một luồng, được đăng lên một luồng khác và trong chuỗi nhận, chúng tôi gán proto để chuyển dữ liệu đã nhận trở lại thành một đối tượng. –