如果一切都是"对象"在javascript中isn&#t; t"创建对象"多余?

时间:2014-06-09 03:29:20

标签: javascript

根据许多教程和互联网上的人们,我听说“javascript中的所有东西都是对象”。但是,我也很清楚“创建对象”的几种方法,例如构造函数,工厂或对象文字。

我不明白的是......如果“一切都是对象”,我为什么要“创造一个”?是不是创建了一个变量来创建“一个对象”?是不是创建了一个函数来创建一个对象?

当我们说“创造对象”时,我们真正创造了什么?

2 个答案:

答案 0 :(得分:4)

  

我不明白的是......如果“一切都是对象”,我为什么要“创建一个”?是不是创建了一个变量来创建“一个对象”?

不...变量有点像事物的名字。这就像说“如果我们想要一个孩子,我们已经知道我们会称之为Jamie,为什么我们需要做爱?”

变量只指向对象,但不是对象本身。评论也不是对象。也不是for关键字,也不是花括号,也不是赋值运算符=。实际上,JavaScript中的大部分内容实际上都不是对象。

但是,您可以分配给变量的所有内容都是。整数除外。和其他数字。和真理价值观。还有一些我们称之为“原始类型”的东西。然而,它们的行为类似于对象(例如,您可以在它们上调用方法)。所以......几乎没有。

所以...当你说var a = {}时,你正在做的是......

  • 创建一个空对象{}
  • 声明变量a
  • 告诉变量a它应该指向那个空对象。

当你说var b = a时,你说“我想要一个变量b,我希望它指向a已经存在的同一个东西。就像说”我们约翰,这就是这个人。我们也称他为'Prettyboy'。“从那以后,你有两个同名物品的名字。但给约翰另一个名字并不是另一个人。

答案 1 :(得分:0)

首先,not everything is an object in JavaScript。有六种基本类型和一种对象类型。每一条数据都必须属于这些类型之一。

其次,“对象”是一种类型,当您“创建对象”时,您正在创建该类型的已修改 副本 。如果您来自更经典的面向对象编程(OOP)语言,那么类似来创建类的实例。

将它与现实世界的例子进行比较 - 有些东西叫做“汽车”,为什么我们需要制造更多汽车?