2012-02-07 51 views
0

在C++中,我已经了解到变量是用于数据存储的,而对象是类的实例。但在JavaScript中,我已经看到人们将变量引用为对象。为什么变量在JavaScript中被称为对象。我对此感到困惑。一般JavaScript疑问

+0

你可以把你在谈论你的问题的代码示例? – jfriend00 2012-02-07 03:05:27

回答

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 
+0

在以下代码中,是否正确说变量formInThePage是一个对象,var Cool是一个存储整数值的变量.'var formOnThePage = { 方法:'post', action:'form.php', 写:tellMeStuff }; var Cool = 2;' – sandbox 2012-02-07 03:15:16

+2

@sandbox - 我认为你在这里争论一些语义。我会同时调用'formOnThePage'和'Cool'变量。 'formOnThePage'包含对象的引用。 'Cool'包含一个简单的数字值。我称之为“formOnThePage”变量的原因是它可以被赋予一个不同的值,例如'formOnThePage = [1,2,3];'或'formOnThePage =“fun”;'。它不是对象本身,只是一个包含对象引用的变量。 – jfriend00 2012-02-07 03:25:13

+0

一个变量是一个容器。一个对象本质上也是一个容器(更多变量)。类被用作对象。因此,变量可以是也可以是类的对象。*基于原型的编程被视为鼓励程序员专注于某些示例集的行为,后来担心对这些对象进行分类* - 这意味着它们都是数据的容器,而不管它们是什么名称:) http: //en.wikipedia.org/wiki/Prototype-based – Joseph 2012-02-07 03:34:28

1

Javascriptprototype based OOP语言。

基于原型的编程是通过 克隆的过程中进行的面向对象编程 ,其中类的风格不存在和行为重用(被称为基于类的语言 继承)作为原型的现有对象。

-1

在Javascript中,我们使用DOOM对象模型(DOM)来引用网页的不同元素。因此,当我们引用窗口,文档,表单时,它们都是对象,变量被声明为 var x = 0;以下将作为对象分配的示例。 var w = window;

+0

然后wat在这里被称为对象或变量:'var foo = {name:“foo”,one:1,two:2};' – sandbox 2012-02-07 03:18:11

+0

我是试图简单地区分为什么我们把大部分的东西称为C++中的对象而非简单变量。 – 2012-02-07 03:20:00