gpt4 book ai didi

javascript - Javascript 中的函数是对象还是类型?

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

Haverbeke 在他的 Eloquent Javascript 中声称(第 16 页):

“在 JavaScript 系统中,大部分数据都被整齐地划分为称为值的东西。每个值都有一个类型,这决定了它可以扮演的 Angular 色。值有六种基本类型:数字、字符串、 bool 值、对象、函数和未定义的值。”

但是 Javascript 中的 Crockford: The Good Parts 说:

“JavaScript 的简单类型是数字、字符串、 bool 值(true 和 false)、null 和 undefined。所有其他值都是对象。数字、字符串和 bool 值类似于对象,因为它们有方法,但它们是不可变的。 JavaScript 中的对象是可变键集合。在 JavaScript 中,数组是对象,函数是对象,正则表达式是对象,当然,对象也是对象。

现在,至少在 V8 下我得到了这个:

> typeof function(){};
'function'
> typeof {};
'object'

我不明白对象是类型而函数是对象还是函数和对象都是类型。我想我错过了原始类型和其他类型(复合类型?)之间的区别。

最佳答案

它们是一种对象。
typeof"function" :

typeof (function() {}) === "function" // true

内部 [[Class]][object Function] :
({}).toString.call(function() {}) === "[object Function]" // true

它们是 Function 的一个实例构造函数原型(prototype):
(function(){}) instanceof Function // true

它们是 Object 的一个实例构造函数原型(prototype):
(function(){}) instanceof Object // true

关于javascript - Javascript 中的函数是对象还是类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15399937/

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