对象

对有关对象的描述进行剖析:

是一种数据类型吗?一般称为Object类型,而Object的中文释义就是对象,所以在中文中说对象类型并没有问题。

故而对象的第一层意思,就是对象数据类型。

是一个集合吗?

高程中说:es中的对象时一组数据和功能的集合。

MDN文档中说:对象是一个包含数据和方法的集合(通常由一些变量和函数组成,我们称之为对象里面的属性和方法),让我们通过一个例子来了解它们。

集合的概念很简单,有成员才有集体,没有成员就没有集体这个概念。集合的主要特征是多,而不是突出一。

综合以上会发现,即使是非常专业的教材和文档对于对象的描述也还是存在不和。

先取其共同之处,也就是“对象是一个集合”。

第二个共同之处是“集合中包含数据”,这里的数据同样是一个笼统的概念。看一个具体的例子:

1 var person={
2     name:'孙悟空',
3     greet: function(){   
5     alert('hi');
6 }
}

name算不算数据,当然算。

‘孙悟空’算不算数据,算。

事实上即便是函数,最终也还是以数据存储的,所以如果真的深究,没有尽头,只需要明白其各自所指就足够了。

两种描述,一个叫功能,一个叫方法,哪一个更好?个人觉得是方法。

看一个单词,functionality。

function我们知道叫函数,但functionality指的是函数具有的特性,是“功能”的意思。

事实上,有一个概念要弄清楚,函数和方法一样吗?我会写一篇文章专门来探讨,敬请期待。

从形式上看,对象person是包含了一些key:value,还有function,所以没有必要复杂化,按照最直观的方式来解释对象就好了。

如果想描述对象的组成部分,就数据(键值对)和方法。

一锤定音,以后我自己在描述对象时,会使用如下定义:

对象是由数据和方法组成的集合。

原文地址:https://www.cnblogs.com/flyover/p/14080622.html