javascript - 对于object,是否可以这样理解?

查看:87
本文介绍了javascript - 对于object,是否可以这样理解?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1、每个js文件中都只有一个object类型,本身object没有什么含义,存在只是用于实例化对象。
2、从地位上讲,object类型与array、date、string、number、function等类型是相等的,并不存在父子之类的关系
3、object是所有我用new object()实例化的对象的祖先,与我用new function()、new Array()实例化的对象没有任何关系。
4、我可以用object实例化任何功能的对象,甚至那些功能可以代替Array、string等类型的功能。

上述对object类型的理解是否正确呢?错误又在哪里呢?
谢谢

解决方案

很不幸地告诉你,你这4条地理解全部不正确。

从你的描述中可推测,你所说的object是指Object构造函数。

1、每个js文件中,有很多object类型的变量,但是Object构造函数只有一个,Object是有含义的,用于创建对象,且实例化对象并不一定非要用Object构造函数。Object.create(null)即可构造一个对象。

2、没有什么地位不地位的。Array、Date、Function是引用类型,即对象,String、Number是基本类型,即值类型。Array、Date、Function除了是它们本身的类型之外,也都是Object类型,比如Array,它是Array类型,但也是Object类型。举例:你是人类,也是哺乳动物。

3、Object是你用new Object()实例化的对象的构造器,而不是祖先,与你用 new Function()、new Array()实例化的对象是有关系的,关系见2.

4、你不可以实例化任何功能的对象(比如你不能实例化window对象)。

这篇关于javascript - 对于object,是否可以这样理解?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆