一、创建对象的几种办法
// 1、字面量var o1 = {name:'lihaixing'};var o11 = new Object({name:'lihaixing'});// 2、构造函数var M = function(){this.name='haixing'};var o2 = new M();// 3、基于原型var P = {name:'haixing'};var o3 = Object.create(P);var o33 = Object.create(null);
二、原型链
var M = function () { this.name = 'haixing'; // return {}};var o2 = new M();console.log(M.prototype.constructor === M); // trueconsole.log(M.prototype === o2.__proto__); // trueconsole.log(M.prototype.__proto__ === Object.prototype); // trueconsole.log(M.__proto__ === Function.prototype); // trueconsole.log(o2 instanceof M); // true console.log(M.prototype instanceof Object); // true console.log(o2 instanceof Object); // true 只有一条链上就能够console.log(Object.prototype.__proto__===null); // true