Javascript 如何在Node JS中获取对象的类名
问题很简单。例如,如果您选择一个缓冲区,您可以:Javascript 如何在Node JS中获取对象的类名,javascript,node.js,Javascript,Node.js,问题很简单。例如,如果您选择一个缓冲区,您可以: b = new Buffer(0); 然后检查类型: typeof b; 结果是“Object”,但我想知道它是一个缓冲区 如果在节点控制台中执行此操作,则会得到: >b=新缓冲区(1024) >b型 “对象” >b 因此,控制台如何知道b是缓冲区 在您的情况下: b = new Buffer(1024); if (b instanceof Buffer) { ... 更一般地说,请参见。Note:and(在0.11+中)的可能副本。
b = new Buffer(0);
然后检查类型:
typeof b;
结果是“Object”,但我想知道它是一个缓冲区
如果在节点控制台中执行此操作,则会得到:
>b=新缓冲区(1024)>b型
“对象”
>b
因此,控制台如何知道b是缓冲区 在您的情况下:
b = new Buffer(1024);
if (b instanceof Buffer) {
...
更一般地说,请参见。Note:and(在0.11+中)的可能副本。这是一个很好的答案,但它是Ecmascript 6的一部分,因此不受普遍支持。在@Bart,
var Apple=function(){}
上也失败,var Apple=function(){}
,是的,但这是@user3242467的一个很好的起点。我认为在某些情况下使用instanceOf
并不是一个更好的解决方案。@巴特提到,跨浏览器/引擎支持可能不是一个问题(尽管仍然值得一提),V8支持函数。name
,尽管它目前还不是官方的。另外,在Apple
中,构造函数本身是匿名的,因此控制台也不会显示名称console.log(新的Apple())/{}