原型对象
1.原型对象 创建函数的时候,系统会自动创建一个对应的对象。 称之为原型对象。
2.作用 解决内存浪费 + 变量污染
3.构造函数、原型对象、实例对象的关系 构造函数: 有一个prototype属性, 指向原型对象 原型对象 : 有一个constructor属性,指向构造函数 实例对象 : 有一个__proto__属性,指向原型对象
原型链
1.原型链 : 每一个对象都有原型,原型也是对象也有自己的原型,以此类推形成链式结构
2.对象访问原型链规则 :就近原则 先访问自己,自己没有找原型,原型没有找原型的原型,此类类推直到原型链终点 null. 如果还没有,属性则获取undefined, 方法则报错xxx is not funtion
3.原型链作用 : 继承 原型继承 : 把父构造函数实例 作为 子构造函数原型 语法:子构造函数.protype = new 父构造函数()
4.实例对象 instanceof 构造函数 作用:检测构造函数的prototype在不在实例对象的原型链中
/* 测试题1*/
function A(){}
A.prototype.n = 1;
var b = new A();
A.prototype = {
n:2,
m:3
};
var c = new A();
console.log(b.n,b.m,c.n,c.m); //1 undefined 2 3
这是一道原型的测试题,最终输出结果为1 undefined 2 3