javascript - 如果JavaScript中的所有内容都是 "object",那么 "creating objects"不是多余的吗?

标签 javascript

根据互联网上的许多教程和人们的说法,我听说“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/

相关文章:

javascript - 我无法在评论下通过 Ajax 获得评论回复而不刷新

javascript - 在正则表达式中,匹配一件事或另一件事,或两者都匹配

javascript - 如何使用chart js或其他库绘制甘特图

javascript - 如何从另一个 .js 文件添加 Express 路由端点?

javascript - 按下按钮时检查两个 id

javascript - 来自 AngularJS 的 NodeJS HTTP 请求

javascript - 纯 Javascript 中的 jQuery 代码

javascript - 如何通过已经具有 "visibility: visible !important;"属性的 css 或 javascript 禁用 html 元素?

javascript - 更新 Mustache Ractive 模板中的变量

javascript - 如何在 HTML 列表项中传递隐藏数据