js中prototype,__protpo__,constructor的定义和作用总结

作为一个前端开发人员,对prototype,__proto__,constructor如果不理解,感觉有点说不过去(其实这个也是挺实用的),这里做个总结。

【prototype】

定义:

函数的原型对象。

注意点
  1. 函数才有prototype
  2. 包含2个成员——constructor和__proto__
作用
  • 实现类的继承
    function Class3() {
        this.sex = 'male';
    }
    let obj = {
        name: 'obj123123'
    }
    Class3.prototype = obj;
    let c3 = new Class3();
   console.log(c3.name);//输出obj123123
  • 向类添加方法
function Class1() {
    this.name = 'wcx';
}
Class1.prototype.sayhello = function() {
    console.log(123)
}
let c1 = new Class1();
console.log(c1.sayhello())//输出123

【 __proto__】

定义

对象的构造函数的原型对象(对象爸爸的prototype)

作用

__proto__属性的作用就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的__proto__属性所指向的那个对象(父对象)里找,一直找,直到__proto__属性的终点null,然后返回undefined,通过__proto__属性将对象连接起来的这条链路即我们所谓的原型链

【constructor】

定义

对象的构造函数

补充

作用

可以用于判断的对象的类型(但是不是最好的方法)

其他一些补充

js构造对象的2中方式——对象字面量和new 的方式
对象字面量

就像下面这样的就是对象字面量构造函数的方式

let obj = {
    name: 'wcx'
}
new的方式

像下面这样的就是new的方式

function Class1() {
    this.name = 'wcx'
}
let a = new Class1();

构造函数总结(https://www.cnblogs.com/wyaocn/p/5815775.html这篇博文讲得非常好)

定义

用于创建的函数我们称之为构造函数或者构造器;

方式

对象字面量和new 的方式,上文中有提到过。

原理(new的方式)

主要做了4件事情

function Class1() {
    this.name = 'wcx'
}
//new 做的4件事情
let c1 = {};
c1.__proto__ = Class1.prototype;
Class1.call(c1);
return c1
补充

一个函数要作为一个真正意义上的构造函数,需要满足下列条件:

1、 在函数内部对新对象(this)的属性进行设置,通常是添加属性和方法。

2、 构造函数可以包含返回语句(不推荐),但返回值必须是this,或者其它非对象类型的值。

作用

用于创建大量相同类型的对象,并使对象具备实现继承等高级特性的能力。

参考文献

https://www.cnblogs.com/libin-1/p/6014925.html
https://blog.csdn.net/cc18868876837/article/details/81211729
https://www.cnblogs.com/wyaocn/p/5815775.html

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • javascript 中的原型 javascript 中,每个函数都可以有属性,prototype 就是每个函数都...
    SimonJoe246阅读 181评论 0 0
  • 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化、多态、和封装几种技术。对 JavaSc...
    吴佳浩阅读 520评论 0 4
  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,663评论 0 5
  • “吾日三省吾身,”每日都反思自己,很多时候,遇到事情,首先是把自己撇干净,把眼睛盯在对方身上,很少先看看自身的问题...
    台一DDM路静娟阅读 117评论 0 0
  • 车祸意外发生后,吾每餐均以猪蹄为主食。至今三月有余,若以四个猪蹄为一头猪计,那么在下迫害的猪公数量当不下百头。其原...
    梁君牧阅读 229评论 0 0