1、对象与函数的关系浏览器
1.对象是函数建立,函数也是一种对象。函数
2.对象的建立方式prototype
2.1.Object构造函数建立对象new Object();对象
2.2.字面量建立对象var x = new();其本质就是new Object方式建立。继承
2.3.经过工厂模式建立,在方法中使用new Object();能够建立多个对象。ip
2.4.使用构造函数建立对象。原型链
2.5.使用原型建立对象。原型
2.6.使用构造函数和原型建立对象。构造函数
2.7使用Object.create();建立对象。方法
3.函数、对象、原型、原型链
1.每一个函数都有一个prototype,每个对象都有一个__proto__。
2.__proto__(隐式原型)与prototype(显式原型)。
隐式原型:每个函数在建立以后都会拥有一个名为prototype的属性,这个属性指向函数的原型对象。
显示原型:JavaScript中任意对象都有一个内置属性[[prototype]],在ES5以前没有标准的方法访问这个内置属性,可是大多数浏览器都支持经过__proto__来访问。
关系:隐式原型指向建立这个对象的函数(constructor)的prototype(显示原型)
做用:显式原型的做用:用来实现基于原型的继承与属性的共享;隐式原型的做用:构成原型链,一样用于实现基于原型的继承。举个例子,当咱们访问obj这个对象中的x属性时,若是在obj中找不到,那么就会沿着__proto__依次查找。