构造函数和原型链

156 阅读1分钟
// 构造函数:是一种特殊的方法、主要用来创建对象时初始化对象,
// 总与new运算符一起使用,创建对象的语句中构造函数的函数名必须与类名完全相同。
// 与普通函数相比只能由new关键字调用,构造函数是类的标示
// 通过new创建一个对象的时候,函数内部有哪些改变???
// 1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 
// 2、属性和方法被加入到 this 引用的对象中。
// 3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。

js里所有的对象都有__proto__属性(对象,函数),指向构造该对象的构造函数的原型。
只有函数function才具有prototype属性。这个属性是一个指针,指向原型对象
原型对象也有一个属性,叫做constructor,这个属性包含了一个指针,指回原构造函数。

function出来的函数会自动添加一个prototype原型对象( 他上面的属性和方法只有一份并且所有实例共享)
object对象都有内置的原型对象__proto__注意是两个_(我在这里吃过亏哈哈)
并且obj.__proto__指向它的构造函数的prototype对象
obj.__proto__就是一个(地址)根据它可以找到它构造函数的prototype对象
obj.__proto__=itsConstructor.prototype
这样当