1 定义
对象继承属性的一个链条
2构造函数,实例与原型对象的关系
var Person = function (name) { this.name = name; }//person是构造函数 var o3personTwo = new Person('personTwo')//personTwo是实例
原型对象都有一个默认的constructor属性指向构造函数
3 创建实例的方法
1.字面量
let obj={'name':'张三'}
2.Object构造函数创建
let Obj=new Object() Obj.name='张三'
3.使用工厂模式创建对象
function createPerson(name){ var o = new Object(); o.name = name; }; return o; } var person1 = createPerson('张三');
4.使用构造函数创建对象
function Person(name){ this.name = name; } var person1 = new Person('张三');
4 new运算符
1.创了一个新对象;
2.this指向构造函数;
3.构造函数有返回,会替换new出来的对象,如果没有就是new出来的对象
4.手动封装一个new运算符
var new2 = function (func) { var o = Object.create(func.prototype); //创建对象 var k = func.call(o); //改变this指向,把结果付给k if (typeof k === 'object') { //判断k的类型是不是对象 return k; //是,返回k } else { return o; //不是返回返回构造函数的执行结果 } }
更多详情:详谈JavaScript原型链
5 对象的原型链