纯属个人理解,有错误的地方希望大牛指出,以免误人子弟
1、构造函数:
构造函数的作用 : 初始化由new创建出来的对象
new 的作用: 创建对象(空对象)
new 后面跟的是函数调用,使用new来调用函数,跟普通的直接调用函数主要的不同: 就是 this 的指向不同了 , 再就是 会自动的返回新创建的对象
什么是原型?
原型的作用:就是为了实现继承!
一个对象的原型就是它的构造函数的prototype属性的值。
在讨论原型的时候,是指的 对象和原型对关系
prototype是哪来的?
所有的函数都有一个prototype属性, 当函数被创建的时候,prototype属性会自动创建和初始化 (JS的引擎帮我们创建好的),
构造函数的prototype属性的默认值是一个对象,这个对象 只带有一个属性,constructor。 // // Person.prototype.constructor === Person // 结果为:true
对象在被创建的时候,原型就定下来了, 那么其原型链也就确定下来了
// function Person() {}
// var p = new Person();
p是构造函数Person创建的对象,其对象的原型链是
// p -> Person.prototype -> Object.prototype -> null
// Person.prototype = {};
虽然,修改了Person.prototype的值,但是不能影响到已经创建好的对象的原型链
原型链就是对象有原型对象,原型对象也是对象,所以原型对象也有原型对象,这样一环扣一环,就形成了一条链式结构叫做:原型链,也叫对象链
JavaScript继承就是 拿来主义:自己没有,别人有,拿过来让其成为自己的或者能被自己使用。