JS 里没有完全对应 Python 等语言里实例的结构,
JS 是基于原型的面向对象语言, 所有数据都可以当作对象处理,
所以 person
是对象, 可以把他当作是 Object
的实例. 当然, 一切都是对象.
为了更清楚这里的意义, 楼主更应该理解 JS 的里构造器, 比如 Object
这个函数.
JS 里用函数作为一个构造器来产生类型, 印象里楼主的 person = {}
只是前者的语法糖.
更明显的构造器的例子可以到网上很容易找到:
http://dbear.iteye.com/blog/613745
function start(){
alert("Bang!!!");
}
//constructor
function Car(color, title){
this.color = color;
this.title = title;
this.start = start;
}
var car1 = new Car("red", "BMW");
var car2 = new Car("yellow", "VOIS");
这里的 Car
就是一个构造器, 同时是函数... 当然函数也是对象..
JS 里的 this
需要注意, this
出现在函数体, 永远指向所属的对象.
有了构造器之后, 多多少少能按类的面向对象去理解, Car
是一个类.
个人不喜欢按类的面向对象去理解原型的面向对象, 因为原型灵活多了.
很多 JS 框架会扩展 JS 语言, 加入类的功能.. 需要的话建议看下框架理解.