javascript继承的实现方式 发表于 2016-11-10 | 分类于 javascrip | 阅读次数: 继承的实现方式混入式继承(mix-in)12345var obj = {};var obj1 = {name:"adsf",age:18};for(var k in obj1){ obj[k] = obj1[k];} 原型继承1.使用混入的方式为原型对象添加成员、123456var human = {name:"",age:18}function Person(){};for(var k in human){ Person.prototype[k] = human[k];} 2.直接修改原型对象123function Person(){}Person.prototype.name = "";Person.prototype.age = 18; 3.替换原型对象123var human = {name:"",age:18}function Person(){};Person.prototype = human; 经典继承123var obj = Object.create(obj1);//创建出来一个新的对象obj继承自obj1//原理就是把obj1设置为obj的原型 经典继承的兼容性问题1234567891011function myCreate(obj){ //判断浏览器有没有Object.create方法 if(Object.create){ //如果有,直接调用 return Object.create(obj); }else{ function F(){} F.prototype = obj; return new F(); }} 为什么不能修改原生对象?因为原生对象是公用的,在多人开发的时候,可能会出现冲突,你修改了,他也修改了,谁的生效呢?