JavaScript对象
大约 1 分钟
JavaScirpt 中万物皆对象,可以分为三种:实例对象,函数对象,原型对象。...
所有的对象都有__proto__
属性。 只有函数对象拥有prototype
属性。 只有原型对象拥有constructor
属性。
通过function colina(){}
来创建一个函数对象colina。 通过var a = new colina()
来创建一个实例对象。
函数对象创建时自动产生对应的原型对象。 创建时,函数对象的prototype
指向其原型对象, 函数对象对应的原型对象的constructor
指向该函数对象。 a的__proto__
指向对应的原型对象(即colina的prototype)。
js中本身存在两个函数对象: Function和Object 和其对应的两个原型对象:Function.prototype
和Object.prototype
所有函数对象的__proto__
指向Function的原型对象(即Function.prototype
) 所有原型对象的__proto__
指向Object的原型对象(即Object.prototype
), 除了Object.prototype
本身(为null)。
在查找一个对象的属性时,js先查找本身,找不到就顺着__proto__
往上找,直到null。