资讯专栏INFORMATION COLUMN

JavaScript中常见的几种继承方式

Vicky / 338人阅读

摘要:继承方式一混入继承继承方式二原型继承创建构造函数,并且将对象的地址赋值给构造函数的原型实现继承恢复三角关系实例化的所有对象都拥有对象的属性和方法继承方式三混入加原型继承方式四实现过程了一个新的对象,把传入作为参数的那个对象设置给新创建的这个

继承方式一:混入继承
"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"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89731.html

相关文章

  • JavaScript常见的六种继承方式

    摘要:组合继承也是需要修复构造函数指向的这种方式融合原型链继承和构造函数的优点,是中最常用的继承模式。的继承机制完全不同,实质是先将父类实例对象的属性和方法,加到上面所以必须先调用方法,然后再用子类的构造函数修改。 前言 面向对象编程很重要的一个方面,就是对象的继承。A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法。这对于代码的复用是非常有用的。 大部分面向对象的编程语言,...

    silvertheo 评论0 收藏0
  • JavaScript常见的六种继承方式

    摘要:组合继承也是需要修复构造函数指向的这种方式融合原型链继承和构造函数的优点,是中最常用的继承模式。的继承机制完全不同,实质是先将父类实例对象的属性和方法,加到上面所以必须先调用方法,然后再用子类的构造函数修改。 前言 面向对象编程很重要的一个方面,就是对象的继承。A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法。这对于代码的复用是非常有用的。 大部分面向对象的编程语言,...

    wyk1184 评论0 收藏0
  • JavaScript常见的六种继承方式

    摘要:组合继承也是需要修复构造函数指向的这种方式融合原型链继承和构造函数的优点,是中最常用的继承模式。的继承机制完全不同,实质是先将父类实例对象的属性和方法,加到上面所以必须先调用方法,然后再用子类的构造函数修改。 前言 面向对象编程很重要的一个方面,就是对象的继承。A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法。这对于代码的复用是非常有用的。 大部分面向对象的编程语言,...

    anyway 评论0 收藏0
  • JavaScript常见的六种继承方式

    摘要:组合继承也是需要修复构造函数指向的这种方式融合原型链继承和构造函数的优点,是中最常用的继承模式。的继承机制完全不同,实质是先将父类实例对象的属性和方法,加到上面所以必须先调用方法,然后再用子类的构造函数修改。 前言 面向对象编程很重要的一个方面,就是对象的继承。A 对象通过继承 B 对象,就能直接拥有 B 对象的所有属性和方法。这对于代码的复用是非常有用的。 大部分面向对象的编程语言,...

    helloworldcoding 评论0 收藏0
  • 一名【合格】前端工程师的自检清单

    摘要:在他的重学前端课程中提到到现在为止,前端工程师已经成为研发体系中的重要岗位之一。大部分前端工程师的知识,其实都是来自于实践和工作中零散的学习。一基础前端工程师吃饭的家伙,深度广度一样都不能差。 开篇 前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快是其他技术所不能比拟的。 winter在他的《重学前端》课程中提到: 到现在为止,前端工程师已经成为研...

    罗志环 评论0 收藏0

发表评论

0条评论

Vicky

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<