<分区>
Possible Duplicate:
How to get a JavaScript Object's Class?
在 Ruby 中,我可以这样做来检查实例的类:
'this is an string'.class
=>String
js中有没有类似的东西?
标签 javascript
<分区>
Possible Duplicate:
How to get a JavaScript Object's Class?
在 Ruby 中,我可以这样做来检查实例的类:
'this is an string'.class
=>String
js中有没有类似的东西?
最佳答案
您可能指的是类型或构造函数,而不是类。类在 JavaScript 中具有不同的含义。
获取类(class):
var getClassOf = Function.prototype.call.bind(Object.prototype.toString);
getClassOf(new Date()); // => "[object Date]"
getClassOf('test string'); // => "[object String]"
getClassOf({ x: 1 }); // => "[object Object]"
getClassOf(function() { }); // => "[object Function]"
要获取构造函数或原型(prototype),有多种方法,具体取决于您的需要。
要发现您拥有的原语类型,请使用 typeof
。这是与字符串、 bool 值、数字等一起使用的最佳选择:
typeof 'test string'; // => 'string'
typeof 3; // => 'number'
typeof false; // => 'boolean'
typeof function() { }; // => 'function'
typeof { x: 1 }; // => 'object'
typeof undefined; // => 'undefined'
请注意 null
在这种情况下表现得很奇怪,因为 typeof null
会给你 "object"
,而不是 "null "
.
你也可以得到原型(prototype), Backbone 的JavaScript继承,用Object.getPrototypeOf(myObject)
(或myObject.__proto__
或myObject.constructor.prototype
在不支持 getPrototypeOf
的某些浏览器中)。
您可以使用instanceof
测试构造函数:
new Date() instanceof Date; // => true
您也可以合理地使用 myObject.constructor
获取构造函数,但请注意,这可以更改。要获取构造函数的名称,请使用 myObject.constructor.name
。
new Date().constructor.name; // => 'Date'
关于javascript - 如何在 Javascript 中检查实例的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018759/
相关文章:
javascript - Angular2 路由守卫返回 Observable<bool>,如何处理错误
javascript - <script/> 与 <script></script> 使用 webpack 和 Angular
javascript - 如何在呈现数据时排除特定的 JSON 对象
javascript - 移动到外部组件,直到到达具有特定属性的组件
javascript - 在 JavaScript 中生成一个两位数的正随机数
javascript - 如何在 Typescript 中根据参数类型声明返回类型
javascript - 如何使用 jquery 将值从输入字段传递到选择选项?