js中的原型分析介绍
原型:
1.原型是个什么玩意儿:在构造函数创建出来的时候,会默认的帮构造函数创建并联一个神秘的函数。 原型默认的是一个空的对象
2.原型可以用来干什么:原型中的属性和方法 可以被使用该构造函数创建出来的对象使用
3.如何访问构造函数的原型:
构造函数.prototype
4如何给原型函数添加属性和方法
person.prototype.属性=属性值
1.自己和原型都有同一个属性,以自己的属性优先
6.prototype是构造函数的属性,跟对象没有关系
使用原型注意事项:
1.使用对象访问属性的时候,如果在本身内找不到就会去原型中找,但是使用点语法进行属性赋值的时候,并不会去原型中进行查找。使用点语法赋值的时候,如果对象中不存在该属性,就会给该对象新增该属性
2.如果在原型中的属性是引用类型的,那么 所有的对象共享该属性,并且一个对象修改了该引用类型属性的成员,所有对象都会被修改。
3.一般情况下不会将属性放到原型对象中,一般情况下原型中只会放需要共享的方法
如何访问原型:
1、通过构造函数访问原型
person.prototype;
2、通过对象访问原型
__proto__属性 是一个非标准的属性
p.__proto__; 不推荐使用
主要用来做调试
4.只有设置属性的操作,才不会去管原型中到底有没有该属性,只会在当前对象中找该属性,如果有 修改 如果没有 新增
5.原型对象在创建出来的时候,会默认的有一个constructor指向对应的构造函数 personprototype.constructor
6.在使用新的对象替换默认的原型对象之后 原型对象中的constructor属性会变成object 为了保证整个 构造函数--原型--对象之间的关系的合理性 应做如下操作:在替换原型对象的时候,在新的原型对象中手动添加constructor属性
function person(){
}
person. prototype={
costructor:person
};
console.log(person.prototype.constructor);