首页 > 编程语言 > 详细

Javascript之原型链

时间:2021-09-15 13:37:50      阅读:13      评论:0      收藏:0      [点我收藏+]

1:构造函数

function Person(){
    this.name=‘jeff‘;
    this.sing=function(){
        console.log(‘sing‘)
    }
}

  

构造函数存在一个问题,实化化的时候无法共享属性或方法

技术分享图片

2:Prototype原型

函数拥有prototype
2.1原型是什么?原型是一个对象,称为原型对象

技术分享图片

技术分享图片

Person.prototype
{say: ?, constructor: ?}
构造函数的原型对象可以实现共享

Person.prototype.movie=function(){
    console.log(‘movie‘)
}


2.2 原型作用是什么?
共享方法
Person.prototype.say=function(){
console.log(‘say‘)
}

 

3:实例对象

对象捅有__proto__属性

因为实例对象的__proto__属性指向的是原型对象(Person.prototype), 所以p1,p2对象的__proto__属性都是指向原型对象,
p1.__proto__===Person.prototype

技术分享图片

 

  并且可以使用原型对象(Person.prototype)里面的方法

 技术分享图片

 

 

4:原型对象修改
如果对原型进行了如下赋值,需要手动指定constructor

Person.prototype={
    sing=function(){
         console.log(‘sing‘)
    },
     movie=function(){
         console.log(‘movie‘)
    }
}

此时Person的原型对象constructor已丢失

技术分享图片

 

 所以如果用这种赋值,需要手动指定construnctor对象

技术分享图片

 

Javascript之原型链

原文:https://www.cnblogs.com/dming4/p/15267450.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!