2

我有一个 classA 的对象,是从classB继承的

我的问题是:我怎么知道我的对象是否继承自classB

我试过: B类的对象实例

但它不工作!

当我将 instanceof 添加到我得到的任何 ts 文件时

0x800a138f - Microsoft JScript 运行时错误:无法获取属性“原型”的值:对象为空或未定义

var __extends = this.__extends || function (d, b) {
    function __() { this.constructor = d; }
    __.prototype = b.prototype; //exception occurs in this line
    d.prototype = new __();
};
4

2 回答 2

5

此错误的一个原因是您派生的类是否位于文件中的派生类之后

这(破坏瑞恩的回答):

class B extends A {
}

class A {
}

var x = new B();
console.log(x instanceof A); // Error

...导致您在Playground中描述的错误。

我认为在 codeplex 上已经有一个工作项,但是已经晚了,我还没有检查...

于 2013-06-17T22:07:44.483 回答
2

这通常确实有效:

class A {
}

class B extends A {
}

var x = new B();
console.log(x instanceof A); // true
于 2013-06-17T17:31:02.437 回答