首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javascript中原型链的说明

javascript中原型链的说明

作者头像
小明爱学习
发布2020-01-21 15:43:41
3460
发布2020-01-21 15:43:41
举报
文章被收录于专栏:smh的技术文章smh的技术文章

今天我们来讲解一下js中的原型链,这可是js进阶中必不可少的一部分。

“函数”是我们在学习js中最常见的对象,每个实例化的对象都有一个私有属性( __proto__ )指向它的构造函数的原型对象(prototype ),每个原型都有一个自己的原型对象,基本上所有的对象最后的原型链都是Object的实例。

例子:

function Person() {
}
Person.prototype.eat = function () {
    return this;
}
function Women() {
    this.subpeople = false;//实例中的属性
    this.hello = function () {//实例中的函数
    return this;
}
Women.prototype = new Person();
var ins = new Women();
console.log(ins.eat());

首先我定义了一个Person函数,然后再原型链上添加eat函数,然后再创建了一个Women函数,让Women函数的prototype等于 Person函数的实例。这样我们在实例化一个Women函数之后,就可以使用Person函数中原型链中的函数以及属性。这就有点像后端语言中的继承了,我们到控制台来看看这个实例对象“ins”的原型层级。

首先是Women函数中定义的函数和属性,我们可以看到__proto__ 属性指向了Person。

把Person展开,可以看到eat函数,Person的__proto__属性指向了Object,前面说过,基本上所有的对象最后的原型链都指向Object。

所以整个原型链的顺序如下:

 {subpeople: false, hello: ƒ}  >> {eat: ƒ}  >>  Object.prototype >> null。

如果大家去阅读过Jquery的源码,就会更了解原型链了。基本上jquery中所有的函数都是放在原型链中,大家可点击下方链接看看jquery中是如何使用原型链的。

jquery中prototype的实现

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年12月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档