根据互联网上的许多教程和人们的说法,我听说“JavaScript 中的一切都是对象”。不过,我也很清楚“创建对象”的几种方法,例如构造函数、工厂或对象文字。
我不明白的是......如果“一切都是对象”为什么我必须“创建一个”?变量的创建不就是“对象”的创建吗?创建函数不就是创建对象吗?
当我们说“创建对象”时,我们真正在创建什么?
最佳答案
What I don't understand is...if "everything is an object" why should I have to "create one"?Isn't the creation of a variable the creation of "an object"?
不...变量有点像事物的名称。这就像说“如果我们想要一个 child ,我们已经知道我们会叫它杰米,为什么我们需要性?”
变量只是指向对象,但不是对象本身。评论也不是对象。 for
关键字、大括号和赋值运算符 =
都不是。事实上,JavaScript 中的大多数东西实际上都不是对象。
但是,您可以分配给变量的所有内容都是。整数除外。和其他数字。和真理的值(value)观。还有一些我们称之为“原始类型”的东西。然而,它们的行为有点像对象(例如,您可以调用它们的方法)。所以...并不是所有的事情。
所以......当你说var a = {}
时,你所做的实际上是......
- 创建一个空对象,
{}
- 声明变量
a
- 告诉变量
a
它应该指向那个空对象。
当你说var b = a
时,你会说“我想要一个变量b
,并且我希望它指向同一个东西a”
已经是了。这就像在说“我们有约翰,就是这个人。我们也叫他‘Prettyboy’吧。”从那时起,同一个物体就有了两个名字。但是给约翰另一个名字并不能创造另一个人。
关于javascript - 如果JavaScript中的所有内容都是 "object",那么 "creating objects"不是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113314/