原型对象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,默认指向构造函数

posted @ 2023-08-24 09:40  银桑V_V  阅读(9)  评论(0)    收藏  举报