原型-基础知识总结------彭记(04)

原型

1.什么是原型:构造函数在创建出来的时候,系统会默认帮这个构造函数创建并且关联一个空的对象,这个对象就是原型

2.原型的作用:通过和原型关联的构造函数所创建出来的所有对象,都会共享原型中声明的属性和方法---(相当于后台语言中的父类)

3.如何访问原型:可以通过构造函数名称protoType获取原型。如:Person.prototype

4.如何在原型中添加属性和方法

a)利用对象的动态特性为原型添加属性和方法。具体可以通过类型.protoType来添加属性和方法。

如:Person.prototype.address='广州';console.log(per.address);

b)直接为构造函数的原型属性protoType赋值一个新的对象

Person.prototyle={

  name:'jack',

  phone:'12345'

}

var per1=new Person();

console.log(per1.phone);

5.使用原型注意事项

-1原型的成员需要添加在使用

-2公共的成员才可以放到原型中,不同对象的不同的属性应该放在各自对象内

-3在获取某些成员的时候,如果当前对象中没有,才会去原型中获取

-4在使用对象设置属性的值的时候,只会在对象自身进行查找,如果有,就进行修改,如果没有就会新增

-5在给构造函数的原型属性protoType赋值一个新的对象,会造成赋值前后创建的对象所指向的原型不一样,所有创建建议先赋值新对象之后再通过构造函数创建对象

6.__proto__属性的介绍:

<script>

   function Person(name,age){

    this.name=name;

    this.age=age;

}

  var per=new Person('jack',20);

  console.log(Person.prototyple);

/*__proto__是一个非标准的属性,不同浏览器会有兼容的问题,所有不推荐在工作和项目中使用,只在自己调试代码的时候使用*、

  console.log(per.__proto__);//指向原型

  console.log(Person.prototype===p.__proto__);//true

</script>

 7.constructor属性

<script>

  function Person(){

/*constructor:指向和原型对应的构造函数*/

console.log(Preson.prototype.constructor===Person);//true

}

</script>

注意:当构造函数.protoType重新赋值为一个新的时候,新的对象中需要手动新增constructor属性,让原型可以正常的和构造函数关联起来,但是constructor属性不是必须要修改的内容,如果没有重新指向,对使用也不会有影响,但是一般情况下,都推荐改成正常的指向。

8.原型链

-1.对象都有原型,原型是一个对象,所以原型又有原型,这样就形成了一个原型链

-2.属性搜索原则:当使用对象去访问一个属性或者方法的时候

  a)先在对象自身中进行查找,如果找到就直接使用

  b)如果没有找到,就去对象的原型中进行查找,如果找到直接使用

  c)如果没有找到,就沿着原型链依次向上查找,直到找到null

最后插入一张图片帮助大家理解原型

转载于:https://www.cnblogs.com/pgm0908/p/7344870.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值