创建对象的方法
在了解原型链之前,首先先了解一下创建对象的几种方式,介绍以下三种。
1. var o1 = {name:'o1'};
var o11 = new Object({name:'o11'});
2.var M = function(){this.name = 'o2'}
var o2 = new M();
3. var P = {name:'o3'};
var o3 = Object.create(P)
什么是原型链
简单理解就是原型组成的链,对象的__proto__它的是原型,而原型也是一个对象,也有__proto__属性,原型的__proto__又是原型的原型,就这样可以一直通过__proto__想上找,这就是原型链,当向上找找到Object的原型的时候,这条原型链就算到头了。
function Student(sname, sage){
this.sname = sname;
this.sage = sage;
}
Student.prototype.intr = function(){
console.log(`I'm ${this.sname},I'm ${this.sage}`);
}
var lilie = new Student("Li Lei", 12);
var hmm = new Student("Han Meimei", 12);
补充:
只有函数有prototype,对象是没有的。
但是函数也是有__proto__的,因为函数也是对象。函数的__proto__指向的是Function.prototype。