JavaScript 常被描述为一种基于原型的语言 (prototype-based language)——每个对象拥有一个原型对象,对象以其原型为模板、从原型继承方法和属性。原型对象也可能拥有原型,并从中继承方法和属性,一层一层、以此类推。这种关系常被称为原型链 (prototype chain),它解释了为何一个对象会拥有定义在其他对象中的属性和方法。
原型对象prototype
关于prototype属性
- 每个函数都有一个prototype属性,默认指向一个object空对象
- 原型对象中有一个属性constructor,它指向函数对象
- 给原型对象添加方法或者属性
每个函数都有一个prototype属性,默认指向一个object空对象
//解析器添加了一个prototype属性,这个属性其实是一个对象 也就是我们的原型对象
var Person =function(){
}
console.log(Person.prototype)//默认指向一个Object空对象,所谓空对象是指 没有我们的属性
Person.prototype.test=function(){
console.log('test')
}
console.log(Person.prototype)
原型对象中有一个属性constructor,它指向函数对象
console.log(Person.prototype.constructor==<