nodejs 里 Type tags 指的是什么?
发布于 6 年前 作者 yyp544784013 2731 次浏览 来自 问答

nodejs 这个接口里有句话不是明白,请大神解惑。 assert.deepStrictEqual(actual, expected[, message]) 这里有句话说:

Type tags of objects should be the same.

那问题来了,Type tags 是什么意思? 它文档里举了个例子, 说这2个对象不一样,是因为 type tags 不一样:

const date = new Date();
const fakeDate = {};
Object.setPrototypeOf(fakeDate, Date.prototype);

// Different type tags:
assert.deepStrictEqual(date, fakeDate);
// AssertionError: Input A expected to strictly deep-equal input B:
// + expected - actual
// - 2018-04-26T00:49:08.604Z
// + Date {}

我理解的 type tagstypeof date 返回的值,但是 typeof datetypeof fakeDate 结果都是 object ,所以我不明白 type tags 指的是什么?

3 回复

let obj1 = {}; let obj2 = new Date();

typeof obj1; // 'object’ typeof obj1; // ‘object’

obj1 instanceof Date; //false obj2 instanceof Date; //true

@miserylee 确实是我问的,但是没讲清啊 不管你是 用 typeof 还是 Object.getPrototypeOf 得出的结果都是一样的。

回到顶部