一般JavaScript怀疑

san*_*box 0 javascript c++ variables

在C++中,我了解到Variables用于数据存储,而Objects则是Class的实例.但在JavaScript中,我看到人们将变量称为对象.为什么变量在JavaScript中称为对象.我对此感到困惑.

jfr*_*d00 5

在javascript中,变量可以自己保存单个数据(如数字3或文本字符串之类"Having Fun"),也可以保存对像数组或对象这样的实体的引用.

javascript中的对象本质上是javascript中的容器.它可以包含多个属性,每个属性都可以通过键访问.例如,一个对象可以有一个名为"name"的属性,其中包含值"Bob",它还可以包含一个名为"Age"的属性,其值为29.对象可以拥有任意数量的属性.因为这样的对象本质上是多个变量的集合,其中每个变量都有自己的名称和值.

从技术上讲,javascript中没有"类",因此它的工作方式与C++不同.Javascript使用原型和对象而不是C++中的类和实例.

在参考问题的细节时,变量可以包含对象的值或引用.没有对错,这取决于要解决的问题.

一些例子:

var person = {};      // a variable `person` that contains a reference to an empty object
person.name = "Bob";  // add a property "name" and value to the object
person.age = 29;      // add a property "age" and value to the object

var numPeople = 12;   // a variable that just contains a number
Run Code Online (Sandbox Code Playgroud)

  • @sandbox - 我认为你在这里争论一些语义.我会同时调用`formOnThePage`和`Cool`变量.`formOnThePage`包含对象的引用.`Cool`包含一个简单的数值.我将`formOnThePage`称为变量的原因是它可以被赋予不同的值,例如`formOnThePage = [1,2,3];`或`formOnThePage ="fun";`.它不是对象本身,只是包含对象引用的变量. (2认同)