原型和原型链

原型

定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。通过该构造函数产生的对象,可以继承该原型的属性和方法。原型也是对象。

特点
1.利用原型特点和概念,可以提取共有属性
原型的增删改查必须用Car.prototype.属性来改

    Car.prototype.height=1400;//共有属性
    Car.prototype.lang=4900;//共有属性
    Car.prototype.carName='BMW';//共有属性
    function Car(color,owner){
        this.owner=owner;
        this.color=color;
    }
    var car =new Car('red','prof.li');  
    var car1=new Car('blue','prof.ji');
Car.prototype{
        height=1400;//共有属性
        lang=4900;//共有属性
        carName='BMW';//共有属性
}
    function Car(color,owner){
        this.owner=owner;
        this.color=color;
    }
    var car =new Car('red','prof.li');  
    var car1=new Car('blue','prof.ji');

2.对象查看对象的构造函数 --->constructor
这个对象的constructor是本身存在的,也可以手动修改 07

function Person(){
        
    }
    function Car(){

    }
    Car.prototype = {
       constructor:Person
     
    }
     var car = new Car();

3.对象如何查看原型 --->隐式原型proto

Person.prototype.name = 'sunny';
    function Person(){

    }
    var person = new Person();//person.name=cherry
    Person.prototype={//改了原型,换了个新对象
        name:'cherry'
    }

比如:引用值的相互赋值

var obj={name:'a'}
    var obj1=obj;//obj1.name=a
    obj={name:'b'};
Person.prototype.name = 'sunny';
    function Person(){

    }
    var person = new Person();//person.name=sunny
    Person.prototype.name='cherry';//在原有的基础上改了属性值

.查找属性,如果本身没有,则会去proto中查找,也就是构造函数的显式原型中查找,如果构造函数中也没有该属性,因为构造函数也是对象,也有proto,那么会去它的显式原型中查找,一直到null,如果没有则返回undefined

原型链

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

推荐阅读更多精彩内容

  • 原型和原型链是js中的难点也是重点,明白了原型和原型链会让我们在后面不管是学习还是工作都会更加高效,并且原型和原型...
    Ecl_02b8阅读 3,379评论 0 2
  • 开篇: 在Brendan Eich大神为JavaScript设计面向对象系统的时候,借鉴了Self 和Smallt...
    指尖的宇宙阅读 3,652评论 0 6
  • 一、创建对象有几种方法 请大家尽可能多的找到创建对象的方法,如有补充欢迎在评论区留言讨论。更多参考详见:JavaS...
    番茄沙司a阅读 4,073评论 1 3
  • 一、new 和 构造函数 1.1 new 运算符 new 运算符用来创建一个新的对象,其后面需紧跟一个函数,该函数...
    NathanYangcn阅读 2,812评论 0 0
  • 总想着逃离 逃离熟悉的环境 逃离不想背负的责任 离开这熟悉的地方 去寻找另一片属于自己的天地 于是我追寻 追寻新的...
    玉珠公子阅读 2,828评论 0 0