获取JavaScript中的真实对象类型

获取JavaScript中的真实对象类型,javascript,telerik,javascript-objects,typeof,Javascript,Telerik,Javascript Objects,Typeof,下面的屏幕截图显示了突出显示的JavaScript对象的类型为Telerik.Web.UI.Grid 问题:获取JavaScript对象真实类型的正确JavaScript代码是什么?我需要在JavaScript中运行时动态确定真正的类型,然后根据真正的类型做一些事情 我尝试了下面的代码,但typeof总是返回object if (typeof $telerik.radControls[6] === "Telerik.Web.UI.RadGrid") { //do something }

下面的屏幕截图显示了突出显示的JavaScript对象的类型为
Telerik.Web.UI.Grid

问题:获取JavaScript对象真实类型的正确JavaScript代码是什么?我需要在JavaScript中运行时动态确定真正的类型,然后根据真正的类型做一些事情

我尝试了下面的代码,但typeof总是返回
object

if (typeof $telerik.radControls[6] === "Telerik.Web.UI.RadGrid") {
   //do something
} else if(typeof $telerik.radControls[6] === "Telerik.Web.UI.RadSearchBox") {
 //do something
} else if (typeof $telerik.radControls[6] === "Telerik.Web.UI.RadTreeView") {
 //do something
}
更新1

我尝试了评论中提到的一些建议,但当我在下面的屏幕显示中使用
instanceof
时,我不可用

更新2

在使用
instanceof
确定JavaScript对象的真实类型时,我发现了一个有趣的事实。下面的代码并不总是有效的。只有当已经存在类型为
Telerik.Web.UI.RadGrid
的对象时,它才会起作用,即我们正在检查的对象类型的构造函数已经被调用。当没有实例化
Telerik.Web.UI.RadGrid
的对象时,我得到了以下错误

未捕获的TypeError:在instanceof check中需要一个函数,但未定义

仅当对象类型存在时才起作用的不安全代码

if (x instance of Telerik.Web.UI.RadGrid) {
   //do something
}
然而,当我使用下面这样的代码时,即使没有实例化
Telerik.Web.UI.RaGrid
类型的对象,它也不会抛出错误

始终有效的安全代码,即不会抛出错误

if (typeof Telerik.Web.UI.RadGrid !== "undefined && x instance of Telerik.Web.UI.RadGrid) {
   //do something
}

instanceof
操作符将给出一个布尔结果,告诉您其左操作数(一个对象)的原型链中是否包含右操作数(一个函数)的
.prototype

因此,假设
Telerik.Web.UI.RadGrid
是构造函数,您可以这样做:

$telerik.radControls[6] instanceof Telerik.Web.UI.RadGrid

instanceof
操作符将给出一个布尔结果,告诉您其左操作数(一个对象)的原型链中是否包含右操作数(一个函数)的
.prototype

因此,假设
Telerik.Web.UI.RadGrid
是构造函数,您可以这样做:

$telerik.radControls[6] instanceof Telerik.Web.UI.RadGrid

if($telerik.radControls[6]instanceof telerik.Web.UI.Grid){…
假设
telerik.Web.UI.Grid
是保存对象原型的构造函数。您必须检查
instanceof
Try
$telerik.radControls[6].constructor.name
我复制并粘贴了您的代码的修改版本。看起来您想要的是
RadGrid
而不是
Grid
。因此
$telerik.radControls[6]Telerik.Web.UI.RadGrid的instanceof Telerik.Web.UI.RadGrid
@squint,对不起,我不知道我怎么漏掉了那个部分,也没有注意到
Rad
丢失了。它可以工作。你能把这个作为答案发布吗?
if($Telerik.radControls[6]Telerik.Web.UI.Grid的instanceof){…
假设
Telerik.Web.UI.Grid
是保存对象原型的构造函数。您必须检查
instanceOf
Try
$Telerik.radControls[6].constructor.name
我复制并粘贴了您的代码的修改版本。看起来您想要的是
RadGrid
而不是
Grid
。因此
$telerik.radControls[6]instanceof Telerik.Web.UI.RadGrid
@斜视,对不起,我不知道我怎么错过了那个部分,也没有注意到
Rad
丢失了。它可以工作。你能把这个作为答案发布吗?