gpt4 book ai didi

javascript - 为什么在 JavaScript class A instanceof Function 中,class A 的 typeof 不是对象?

转载 作者:行者123 更新时间:2023-11-30 08:28:02 36 4
gpt4 key购买 nike

当我们说“instance of”时,我们假设我们正在处理一个对象。为什么当我们询问 (class A { }) instanceof Function 时,JavaScript 的运算符 instanceof 返回 true,但是 typeof (class A { }) ==“函数”?为什么不 object

最佳答案

Why JavaScript's operator instanceof returns true when we ask (class A { }) instanceof Function

classes 只是构造函数的语法糖。 IE。 class A {} 的计算产生一个函数。

以下两个示例(或多或少)是等效的,即它们产生相同的结果/值:

// class
class A {
constructor() {
this.foo = 42;
}

bar() {
console.log(this.foo);
}
}

// constructor function
function A() {
this.foo = 42;
}

A.prototype.bar = function() {
console.log(this.foo);
}

所有不是原始值(字符串、数字、 bool 值、null、未定义、符号)的东西都是 JavaScript 中的对象。函数也是对象,具有使它们可调用(和/或可构造)的特殊内部属性。


Why not object?

typeof 为函数值返回字符串 "function",因为规范中就是这样定义的。

关于javascript - 为什么在 JavaScript class A instanceof Function 中,class A 的 typeof 不是对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100659/

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