创建对象的方法
- 对象字面量
- 构造函数
- Object.create()
// 对象字面量
var o1 = {name : 'potato'}
var o1 = new Object({name: 'potato'})
//构造函数
function oo(){this.name='potato'}
var o1 = new oo();
//Object.create()
var O = {name:'potato' }
var o1 = Object.create(O)
原型、构造函数、实例、原型链
instanceof原理
instanceof 判断的是constroctor
var a = [];
a.__proto__.constroctor===Array;
new 运算符原理
function new(fn){
var o = Object.create(fn.prototype);//1: 继承prototype
var k = fn.call(o)//2:调用构造函数
typeof k ==='object'? return k:return o;//3:构造函数返回对象则返回对象否则返回原型对象
}