JavaScript中常见的几种继承方式

继承方式一:混入继承

"use strict";

//object:A
let Oa= {
    money: 'many money',
    resource: 'company,house',
    control: function (){
        console.log('this is function');
    }
};

//object:B
let Ob = {};
for (let k in Oa) {
    Ob['k'] = Oa['k'];
}

console.log(Ob.money);//'many money'
console.log(Ob.control()); //'this is function'

继承方式二:原型继承

//object:A
var Oa= {
    loveColor: 'Green',
    habbit: 'backetball',
    sayHi: function (){
        console.log('hello world');
    }
}

//创建构造函数,并且将对象A的地址赋值给构造函数的原型
function Func() {}
//实现继承
Func.prototype = Oa;
//恢复三角关系
Func.prototype.contructor = Func;

//实例化的所有对象都拥有对象Oa的属性和方法

//object:B
let Ob = new Func();

console.log(Ob.lovaColor); //'Green';
console.log(Ob.habbit); //'backetball';

继承方式三:混入加原型

//object:A
let Oa = {
    color: 'red',
    love: function (){
        console.log('love green');
    }
}

function Func(name){
    this.name = name;
}

for (let k in Oa) {
    Func.prototype[k] = Oa[k];
}

//object:B
let Ob = new Func('jeky');

console.log(Ob.color) // red;
Ob.love() // 'love green';

继承方式四:object.create();

//object:A
let Oa = {
    fName: 'apple',
    color: 'red'
};

//object:B
//实现过程:new了一个新的对象,把传入作为参数的那个对象设置给新创建的这个对象的原型属性
let Ob = Object.create(Oa); 
console.log(Ob.fName); //'apple'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值