首页 > 解决方案 > 确定对象的确切类型/类别

问题描述

如果我有一个变量并且我想知道对象的类型到底是什么,我该怎么做?

// this prints "object"
// any way to know what kind of object
// like whether a GlideRecord or Reference Field or array or json?
gs.log(typeof myVariable);

标签: javascriptservicenow

解决方案


如果GlideRecord等是类或构造函数,则可以使用constructor属性。

class GlideRecord {}
// or legacy constructor function - 
// function GlideRecord() {}

const instance = new GlideRecord()

const { constructor } = instance

console.log(constructor)                 // GlideRecord
console.log(constructor.name)            // "GlideRecord"
console.log(constructor === GlideRecord) // true

请注意,如果它们只是使用工厂函数创建的普通旧 JS 对象,这将不起作用- 在这种情况下,将只是:constructorObject

const createGlideRecord = () => {
    return { /* ... */ }
}

const instance = createGlideRecord()

const { constructor } = instance

console.log(constructor)                       // Object
console.log(constructor.name)                  // "Object"
console.log(constructor === createGlideRecord) // false


推荐阅读