gpt4 book ai didi

javascript - 关于 typeof class 的澄清

转载 作者:行者123 更新时间:2023-12-01 00:27:51 24 4
gpt4 key购买 nike

所以我正在编写一些测试用例。我有一个类(class)如下。

export default class DateProcessor {
requestHandler = (req, res) => {
//code
}
}

现在我正在编写一个单元测试来查看 DateProcessor 的类型是否为类

import {default as processor} from './getDatesProcessor';

describe('Date Processor', () => {
it('should be a class', () => {
expect(typeof processor).toBe('class');
})
});

但是测试用例失败了,因为我将类型作为函数而不是类获取。我想知道这是否是预期的行为,或者我没有做正确的事情。

最佳答案

您问题的答案是:是的,这是预期行为

说明:
在 JavaScript 中,没有类这样的东西。 class 关键字只是一种语法,可以更轻松地根据最佳实践创建原型(prototype)。事实上,所有这些实际上都是函数。您可以使用 typeof 关键字进行检查,该关键字在应用于时将返回function。此外,这在 JavaScript 中也是可能的:

function Person(name) {
this.name = name;
}

Person.prototype.getName = function () {
return this.name;
}

class Student extends Person {

constructor(name, studies) {
super(name);

this.studies = studies;
}

getStudies() {
return this.studies;
}
}

const s = new Student('John', 'Maths');
console.log(s.getName(), s.getStudies());

有关 JS 中的类的更多信息,here

关于javascript - 关于 typeof class 的澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58835120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com