1.原型链继承(最简单)
核心 (实现思路):信用盘平台搭建【企鹅21717-93408】用父类的实例充当子类原型对象
function Person(name) {
this.name = name;
this.fav = ['basketball', 'football'];
this.detail = {country : '中国', city : '江苏'}
}
function Man(name) {
this.say = function(){console.log('I am man')};
}
Man.prototype = new Person(); //核心
var sam = new Man('sam');
console.log(sam.fav); //'basketball', 'football'
优点
1.简单,容易理解,容易实现
缺点:
1.创建子类实例时无法向父类传参(创建Man时无法传递name信息)
2.引用类型的属性(数组和对象),被所有实例共享,接着上面的代码举个例子
var tyler = new Man('tyler');
tyler.fav.push('badminton');
tyler.rela.area = '建业区'
//修改tyler实例的信息,间接地修改了sam实例的属性
console.log(sam.fav) // "basketball", "football", "badminton"
console.log(sam.rela) // {country:'中国',city:'江苏',area:'建邺区'}