构造函数:
*)构造函数就是初始化对象的函数(给刚创建的对象赋值属性等)。
*)构造函数就是普通函数,内部的this指向window;
只有实例化对象后才被称为构造函数,内部的this指向实例。
*)若构造函数内部存在返回值,且返回值的数据类型为值类型,那么调用这个函数时返回这个实例;
若构造函数内部返回值的数据类型为引用类型,那么调用这个函数时返回复杂数据。
*)若构造函数在调用时没有传参,则构造函数的小括号可以省略。
*)访问原型的方式:构造函数.prototype => 原型。
*)Function是所有构造函数的构造函数。
原型对象:
*)一个函数中就会有prototype属性,这个属性指向一个对象,这个对象就称作原型对象。
*)原型就是构造函数的prototype值。
*)把公有的方法放在原型上来实现资源共享,所有实例都可以访问这个公有方法。
*)原型中的constructor属性指向了构造函数本身。eg:fn.prototype.constructor === fn;
*)Object.prototype => null 是原型链的最顶端。
实例:
*)实例化:通过构造函数创建(new)对象的过程;
实例:实例化出来的对象,称作构造函数的一个实例。
*)访问原型方式:实例.__proto__ => 原型。(.__proto__这个属性是非标准化属性,不推荐使用);
*)Function是Function的实例。
结论:
*)Function.prototype是原型对象,Function就继承自该原型对象。
*)Function instanceof Function 为真;
*)Function instanceof Object 为真;
*)Object instanceof Function 为真;