1荞驴、構(gòu)造函數(shù)
function Person(){
}
2暂雹、創(chuàng)建實(shí)例
const person = new Person();
3、原型對象
Person.prototype.name = 'ivy';
Person.prototype.will = 'become excellent';
4、三者關(guān)系
(1)田炭、只要?jiǎng)?chuàng)建了一個(gè)新函數(shù),就會(huì)根據(jù)一組特定的規(guī)則為該函數(shù)創(chuàng)建一個(gè)prototype屬性漓柑。這個(gè)屬性指向函數(shù)的原型對象教硫;
(2)叨吮、所有原型對象都會(huì)獲得constructor屬性,這個(gè)屬性指向prototype屬性所在函數(shù)的指針瞬矩,即構(gòu)造函數(shù)
(3)茶鉴、實(shí)例對象有屬性proto指向原型對象(only firefox、safary景用、chrome support)
5涵叮、isPrototypeOf()
Person.prototype.isPrototypeOf(person) // return true
6、Object.getPrototypeOf()
該方法返回實(shí)例原型對象
Object.getPrototypeOf(person) === Person.prototype
7伞插、hasOwnProperty()
該方法檢測一個(gè)屬性是否存在于實(shí)例中
person.hasOwnProperty('name')
8割粮、原型與in操作符
檢測屬性是否存在于原型中或?qū)嵗?/p>
9、hasPrototypeProperty()
該方法檢測屬性是否存在于原型中
10媚污、更簡單的原型語法(對象字面量的形式)
Person.prototype = {
name: 'ivy',
age: '25',
will: 'become excellent'
}