2 xu dragon xu_dragon 于 2015.07.18 21:11 提问

JS对象与类的名词性问题

Javascript中感觉类和对象是不是都是一个概念啊,感觉都被整糊涂了,求详解啊!
例如:Array 叫数组对象 arr=new Array(); arr 是对象实例

对象创建时,用构造函数方法: function Person(name){
this.name=name;
}
Person叫对象, person1=new Person("小王") ; person1是对象实例

在继承中 
创建一个类(也是创建对象):    function Person(name){
                                    this.name=name;
}
Person是类  person1是类的实例化.
感觉像C++,Java中Person就是类,person1就是类的一个对象。

6个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.18 22:09
 首先,搞清楚所说的对象指什么,一般来说分为js内置对象和用户自定义对象
 对于内置对象,像Array,Date,Object等都可以是js的内置对象,如果按照java来理解,也可以理解成类。
 然后是自定义对象,比较特殊的就是function,因为js里面没有class关键字。所以function又可以理解成类。
 如果不牵涉自定义对象,没有什么难理解的,一般都是刚开始对function比较困惑,这有点像c++中的struct。
 function看具体的应用。如果没有new操作,那相当于函数。如果有new function函数名称的操作,那就是当做类来用。这个你的理解没什么问题。

CSDNXIAON
CSDNXIAON   2015.07.18 21:13

JS 类与对象
js类与对象
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

yishuixs
yishuixs   2015.07.18 21:26

这个应该是JS的特点,ECMA-262没有类的概念,并且把函数也定义为一种对象,但是必须要有类的功能啊,所以就创造了一个构造函数的功能,用来模拟类

strutce
strutce   Ds   Rxr 2015.07.18 21:37

Person是类 person1是类的实例化对象

yishuixs
yishuixs   2015.07.18 21:39

比如,我要创建一个state类,有China、America、Russia三个instance,如下:
先创建构造函数,即类:

function State(state, area, population){
    this.name = state;
    this.area = area;
    this.population = population;
}

再创建三个instance:

 var China = new State('China', 960, 13);
var America = new State('America', 930, 3.4);
var Russia = new State('Russia', 1700, 1.4);

如我要访问China的area属性值:

 document.write(China.area);     //返回960
Evankaka
Evankaka   Ds   Rxr 2015.07.18 21:25

嗯嗯,是可以这样认为的

Csdn user default icon
上传中...
上传图片
插入图片