JS学习总结2(函数与对象的关系)

上一节中有个问题:
typeof数组的时候,输出object;typeof函数的时候,却输出function,为什么不是输出object?函数不是也是对象嘛?
(数组可以看做对象的一个子集,但函数不行,往下看)

一、函数是对象

console.log(function fn(){} instanceof Object);//true

从上述代码中,看出函数是对象。但是对象呢?对象是怎么产生的呢?大家都知道对象是new 构造函数创造出来的,也就是对象是由函数生成的。啥?
函数是对象,对象又是有函数生成的。那到底先有的谁?似乎跟鸡生蛋还是蛋生鸡一个逻辑。

二、对象是由函数生成的

var obj = new Object();
obj.name = '张三';
obj.age = 12;
console.log(obj instanceof Object);//true
console.log(typeof Object);//function

从上述代码看出,obj是对象,是由Object生成的,但是Object是个函数。所以说,对象是由函数生成的

三、函数与对象的关系

函数与对象的关系不简单,你中有我,我中有你。不像数组,只是对象的一个子集。真正理解两者的关系,那必须理解掌握prototype。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值