原型对象prototype
原型对象 prototype
每个函数都有这样一个属性,即原型对象prototype
function fn() {
}
fn.prototype
原型对象的所有属性与方法,会被函数作为构造函数调用时(即用new调用函数),所创建的对象继承。
fn.prototype.m1 = function() {
console.log('m1执行')
}
// 每个函数都可以作为构造函数调用,作为构造函数时,函数内的this指向新创建的对象
var obj = new fn()
obj.m1() // output:'m1执行'
原型对象本身就是一个对象,所以它也有构造函数,它的构造函数自然也会有一个prototype原型对象,以此类推,直到最终抵达Object的原型对象,Object的原型对象是null。原型对象的原型对象也会被继承。
Object.create(prototype)
用指定的原型对象,创建一个对象,创建的对象的原型对象就是指定的原型对象
Person.prototype.greeting = function() {
console.log('Hello')
};
var obj = Object.create(Person.prototype)
obj.greeting()
原型对象prototype有一个属性
constructor,默认指向构造函数

浙公网安备 33010602011771号