关于js原型,原型链

在说明原型(原型对象)之前,我们还是先回顾一下对象的概念

1.javascript对象:

     所谓万物皆对象,在javascript中,对象又可以分为普通对象函数对象,看下面的例子

 var obj1 = {name:'Leal'};   
 var obj2 =new Object();      //普通对象

 var f1 = function () {      
     this.name = "Leal";
 }
 var f2 = new Function();     //函数对象

如上所示 obj1,obj2 就是普通对象 , f1,f2为函数对象

2.原型对象

在 JavaScript 中每个函数对象都有一个prototype 属性,这个属性指向函数的原型对象,即函数对象的prototype就被称为原型,也叫原型对象,举个例子

 var Student = function () {
    this.name = 'peter';
    this.age = '19'
  }

这里Student就是函数对象,Student.prototype就是原型

每一个原型对象在生成的时候,都会有一个constructor属性,这个属性指向他对应的函数对象,这里就是

Student.prototype.constructor == Student   //true

  var stud1 = new Student();

当我们用new创建一个实例对象stud1时,我们会发现stud1.constructor == stud1,可以得出

原型对象 (student.prototype是构造函数(任何函数只要被new使用了,他就是构造函数,这里指Student)的一个实例。

下面我们用一张图来具体说明把

3.原型链

JS 在new一个实例对象的时候,都有一个叫做__proto__ 的内置属性,用于指向创建它的构造函数的原型对象,我们继续看图

实例对象 stud1的_proto_ 就是原型对象,即   stud1._proto_ == Student.prototype.

所以当我们创建一个对象stud1时,这个对象就继承了这个构造函数(Student)的原型对象(Student.prototype),而这个原型对象(Student.prototype)的_proto_又是Object,我们把这种继承(_proto_的指向)的关系链就叫做原型链。

4.原型和原型链应用场景

    抱歉,我以后再补充上去哦

 

 

 

终于写完了,第一次写博客,如有不足之处,还请各位大神能补充下

好记性不揉烂笔头 后续想把这几年前端入门到实战的经历都写出来,共勉

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值