原型和原型链

在JavaScript中一切引用类型皆为对象,以下是我对原型和原型链的总结

目录

一、原型(prototype)

二、原型链

1、内置对象Object

2、自定义对象

3、Function(特殊对象)

4、完整的原型链图片


一、原型(prototype)

概念:函数都有 prototype 属性,称之为原型,也称为原型对象,原型对象里面可以存放属性和方法,共享给实例对象使用,用于实现继承效果。

关键词:

prototype:每个函数都有一个 prototype 属性,当这个函数被用作构造函数创建对象时,新创建的对象会继承构造函数的 prototype 属性所指向的对象的属性和方法。

__proto__:每个对象都有一个 __proto__ 属性,它指向创建这个对象的构造函数的原型。通过这个属性,可以在对象之间建立原型链。

constructor在构造函数的原型对象上有一个 constructor 属性,它指向构造函数本身。可以通过这个属性来获取构造函数。

二、原型链

1、内置对象Object

var obj = new Object()
        console.log(obj.__proto__ === Object.prototype);//true
        console.log(obj.__proto__.constructor=== Object);//true
        console.log(Object.prototype.constructor === Object);//true
        console.log(Object.prototype.__proto__);//null

2、自定义对象

function Person() { }
var p = new Person()
        console.log(p.__proto__ === Person.prototype);//true
        console.log(Person.prototype.constructor === Person);//true
        console.log(p.constructor === Person);//true

3、Function(特殊对象)

function Person() { }
var f = new Function()
        // console.log(f.__proto__===f.prototype);//false
        // console.log(f.prototype.constructor===Function);//false
        console.log(f.prototype.constructor === f);//true

4、完整的原型链图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值