JavaScript对象

Aniloc大约 1 分钟Anilocjs

JavaScirpt 中万物皆对象,可以分为三种:实例对象,函数对象,原型对象。...

所有的对象都有__proto__属性。 只有函数对象拥有prototype属性。 只有原型对象拥有constructor属性。

通过function colina(){}来创建一个函数对象colina。 通过var a = new colina()来创建一个实例对象。

函数对象创建时自动产生对应的原型对象。 创建时,函数对象的prototype指向其原型对象, 函数对象对应的原型对象的constructor指向该函数对象。 a的__proto__指向对应的原型对象(即colina的prototype)。

js中本身存在两个函数对象: Function和Object 和其对应的两个原型对象:Function.prototypeObject.prototype 所有函数对象的__proto__指向Function的原型对象(即Function.prototype) 所有原型对象的__proto__指向Object的原型对象(即Object.prototype), 除了Object.prototype本身(为null)。

在查找一个对象的属性时,js先查找本身,找不到就顺着__proto__往上找,直到null。