js 原型

Raft算法
• 阅读 745
此刻想法:
    接触前端开发两年了,虽然实际工作中编写代码没有问题,但是对于前端的一些基础知识点掌握得的确不牢固,
每一次仔细琢磨一个知识点,都会有新的领悟。就从这篇文章开始,记录自己的前端学习历程。

重点

1、js所有引用数据类型本质都是对象。
2、对象分为普通对象和函数对象。
3、所有对象都有_proto_属性,指向其构造函数的prototype属性。
4、只有函数对象有prototype属性。

代码示例

function Person(name,age){
    this.name = name;
    this.age = age;
}

Person.prototype.alertName = function(){
    alert(this.name);
}

var p1 = new Person('张三','18');

p1.alertAge = function(){
    alert(this.age);
}

var p2 = new Person('李四','20');

p2.alertAge = function(){
    alert(this.age);
}

js 原型

知识点总结:

1、new 操作符具体干了什么?

(1)新建一个空对象 
    var obj = {};
(2)将Person的protoype属性赋值给obj的_proto_属性
    obj._proto = Person.prototype;
(3)将Person的this指向obj,并执行Person函数
    Person.call(obj);
(4)返回obj
    return obj;

2、构造函数一般首字母大写,用以区分普通的函数。

3、通过把要实现的方法alertName,赋值给构造函数Person的prototype属性,实现了实例p1、p2共享此方法。实现了继承的功能,达到了节省内存的目的。

4、当试图得到一个对象的某个属性时,如果这个对象本身没有该属性,那么会去它的_proto_中寻找。一直往上寻找,就形成了原型链。一直找到最上层,没有则宣告失败,返回undefined。最上层是Object.prototype._proto_值为null。

p1._proto_指向Person.prototype,Person.prototype._proto_指向Object.prototype,
Object.prototype._proto_等于null。

5、函数的prototype属性中的_proto_属性和普通对象的_proto_属性一样,用来对应继承关系。

点赞
收藏
评论区
推荐文章
一个前端应必备的素养图谱
参加工作五年,从后端转岗前端,除了工作中用到,以及平时浏览的技术文章,并没有系统的学习过。随着对前端了解的增加,也更清晰的认识到了前端的迭代速度。各类脚手架,组件库如雨后春笋。我自己的近期学习也是零散,有可能一个知识点还没吃透,就去看另一个了。正好有机会看到github上的学习路线图。借此机会,自己也系统的学习整理一下,无论是已经了解的,还是未曾了解的,都重新梳理。
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
待兔 待兔
1年前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
小嫌 小嫌
3年前
大佬的搬运工
JS大佬学习笔记很有用niubi的博客各种代码的在线学习教程,是一个很好用的学习代码网站这位大佬对js进行了非常牛逼的总结,其中包括了面试经验,专题,深入,ES6,很强阿里巴巴前端开发学习路线现代JavaScript教程浙江大学师姐前端总结,超强!项目实战react实战项目合集前端线上学习编译器
徐小夕 徐小夕
4年前
几个非常有意思的javascript知识点总结
作为一名前端爱好者,笔者利用空余时间研究了几个国外网站的源码,发现不管是库,还是业务代码,都会用到了一些比较有意思的API,虽然平时在工作中部分接触过,但是经过这次的研究,觉得很有必要总结一下,毕竟已经2020年了,是时候更新一下技术储备了,本文主要通过实际案例来带大家快速了解以下几个知识点:Observer原生观察者script标签事件深入
Souleigh ✨ Souleigh ✨
4年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Easter79 Easter79
3年前
TiDB Pre
8月30日,TiDB发布PreGA版。该版本对MySQL兼容性、SQL优化器、系统稳定性、性能做了大量的工作。TiDB:SQL查询优化器调整代价模型优化索引选择,支持不同类型字段比较的索引选择支持基于贪心算法的JoinReorder
Stella981 Stella981
3年前
React官方团队推出了最新的 React Server Components 技术
最近react个官方团队推出了最新的ReactServerComponents这项技术。这篇文章将对其相关知识点进行介绍。那些常见的渲染模式CSR客户端渲染(ClientSideRendering)应该是前端最熟悉的一种模式了。从前端的发展历程上看,富客户端目前也已经成为现代前端应用的主流架构。从jQu
可莉 可莉
3年前
19 年学好前端的6点建议
1\.夯实基础要成为一名年薪30W的前端工程师,基础一定要掌握牢固,基础知识一问三不知,岂不是要贻笑大方。css,js基础知识一定要掌握得很熟练,你能使用css实现斑马条纹背景,毛玻璃效果吗?能给图片实现滤镜效果,能实现所有自适应布局效果吗?原型,原型链,闭包是实现设计模式的必备知识,你真的弄懂了吗?闭包导致内存泄漏的原因
Stella981 Stella981
3年前
Pre
PAT甲级1119,我先在CSDN上面发布的这篇文章:https://blog.csdn.net/weixin\_44385565/article/details/89737224(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fblog.csdn.net%2Fweixin_443855