javascript - 创建新类型,还是检查类型?

标签 javascript ecmascript-5

例如,我有以下构造函数:

function MyType(){

    this.someProp = 'someText';

};

我创建一个新实例:

var myVar = new MyType();

现在我想检查这个对象的类型...

console.log(typeof(myVar));    //object
console.log(myVar.toString()); //[object Object]

有没有办法让 typeof 或默认的 toString 方法返回 MyType,而不仅仅是 对象

最佳答案

不,您不能覆盖 typeof 的行为。它被定义为 in the spec并且有一定数量的可能返回值。它使用操作数“type ”,操作数只能是 null、undefined、string、boolean、number 和 object 之一。

但是,instanceof 应该可以工作:

console.log(myVar instanceof MyType); // true

旁注... typeof 是一个运算符,而不是一个函数,因此您不需要将其括起来的括号。

关于javascript - 创建新类型,还是检查类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14650734/

相关文章:

javascript - 从 React 元素构造 React 组件

javascript - Activity 菜单选项卡下的滑动箭头

javascript - DROPDOWN 不想保持打开状态

javascript - 经过一些研究,循环和 setTimeout 函数仍然不起作用

javascript - 在 React-Native 中将指定 HTML 标签之间的文本内容设为大写

Javascript onclick 事件无法调用函数

javascript - Array.every 函数并未在 Object 的所有元素上运行

javascript - 如何减少 Magnolia JavaScript 模型中的列表?

javascript - Angular 5 : How to inject Router service with ES6/ES5 (without Typescript)

javascript - 为什么reduce中的predicate函数需要wrapper函数?