原型
每一个对象都有一个原型对象,原型可以理解为对象的父亲,对象从原型继承它的方法和属性。对象有一个__proto__属性指向它的原型。
var obj = {};
var arr = [];
console.dir(obj.__proto__);
console.dir(arr.__proto__);
输出:Object
Array(0)
可以看到obj的原型时Object,arr的原型是Array。
Object.create
使用Object.create()创建对象可以使用现用的对象做为新对象的原型。
var obj1 = {name: "js"};
var obj2 = Object.create(obj1);
console.log(obj2.__proto__);
输出:{name: "js"}
构造函数,原型,对象之间的关系
直接上图:
代码验证:
function User(){
this.name = "js";
this.age = 18;
this.fun = function (){
console.log(this.name,this.age);
}
}
var user = new User();
console.log(User.prototype === user.__proto__);
console.log(User.prototype.constructor === User);
输出:true true
原型链
多个原型与原型之间进行连接,就会形成原型链。