8.对象的原型,原型链call/apply

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

2.利用原型特点和概念,可以提取公有属性。

3.对象如何查看原型-->隐式属性__proto__

4.对象如何查看对象的构造函数-->constructor

function Preson(){

//构造函数,大驼峰式

}

var preson = new Preson();

//new的时候隐式var this ;return this;

1-1.原型

Preson.prototype --->就是原型

Preson.prototype = {}    是祖先

如果给其添加属性Preson. prototype.name = 'hehe';则preson就可以继承Preson的name属性。preson本身没有name属性,但是他可以继承Preson的name属性。

var preson1 = new Preson();也可以继承Preson的属性和方法。

var preson2 = new Preson();

但是如果对象本身有的属性,就不会上原型上去找。

原型的增删改查:

Preson.prototype.age = 18;

delete  Preson.prototype.age;

Preson.prototype.age = 20;

Preson.prototype.age

就是说只能通过对构造函数原型本身的操作来实现原型的增删改查,而不能通过构造函数产生的对象来对原型做增删改查。

1-2.constructor

preson.constructor就是指向产生这个对象的构造函数本身。

当打印Preson.prototype时可以看见控制台输出浅粉色的constructor属性,浅粉色表示系统自带的属性。表示原型内部自带这个constructor属性,这个属性就是为了让构造函数产生的对象在想要找到它的原型时,用constructor找到它的构造函数。并且可以在原型上面对constructor属性做修改,如:Preson.prototype.constructor = Car

你可能感兴趣的:(8.对象的原型,原型链call/apply)