首页 > 对于object,是否可以这样理解?

对于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类型的理解是否正确呢?错误又在哪里呢?
谢谢


我很惊讶于你是怎么能YY到第一点的
能讲下思路吗


很不幸地告诉你,你这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对象)。

【热门文章】
【热门文章】