本文内容整理于慕课网视频教程
原型、原型链等相关问题
创建对象的几种方法
原型、构造函数、示例、原型链
instanceof的原理
new运算符
具体说明:
1.创建对象的几种方法
var o1={name:‘o1’’}; 字面量方法
var o11=new Object({name:‘o1’’}); 构造函数创建
var M=function(){this.name=‘o2’’}; 显示构造函数
var o2=new M();
var P={name:‘o3’};
var o3=Object.create(p); 通过Object.create创建的对象是用原型链来连接的。name:'o3’是被创建到了o3的原型对象即,o3._proto_上了。
2.原型、构造函数、示例、原型链
关于原型、原型链的教程看了好几个,最后是看这个教程后:王福朋:原型和闭包,才真正理解了什么是原型的。
3.instanceof的原理
例如:
A instanceof B
意思是在A的原型链上是否可以找到B.prototype属性。或者可以理解为A是否是B或B的子类的实例对象。
4.new运算符
过程:
- 一个新的对象被创建。它继承自foo.prototype
- 构造函数foo被执行。执行的时候,相应的传参会被传入,同时上下文(this)会被指定为这个新实例。new foo等同于new foo(),只用于不传递任何参数的情况下。
- 如果构造函数返回了一个“对象”,那么这个对象会取代整个new出来的结果。如果构造函数没有返回对象,那么new出来的结果为步骤一创建的对象。