资讯专栏INFORMATION COLUMN

【JavaScript】面向对象之继承

sewerganger / 2483人阅读

摘要:一继承原型式继承定义临时构造函数,作为参数传入对象作为着构造函数原型,并最后返回该构造函数的实例对象定义一个临时构造函数遍历对象属性和方法将函数参数作为函数的原型姜构造函数创造的对象进行返回犬夜叉借助构造函数无论是原型链还是原型式继承,都有

JS(JavaScript)

一.继承
1.原型式继承
定义临时构造函数,作为参数传入对象作为着构造函数原型,并最后返回该构造函数的实例对象

function Fun(obj,poap) {
    function Fun() {
        //定义一个临时构造函数
        for(var attrNome in porp){
           //遍历对象属性和方法
           this[attrNome] = porp[attrNome]
        }
    }
    Fun.prototype = obj;
    //将函数参数作为函数的原型
    return new Fun();
    //    姜构造函数创造的对象进行返回
}
var obj = {
    name : "犬夜叉"
}
var result = fn(obj,{
    age : 16,
    sayMe : function () {
        console.log("you my function")
    }
});
console.log(result.age);
result.sayMe();

2.借助构造函数
无论是原型链还是原型式继承,都有相同的问题,可借助构造函数
子对象构造函数种调用父对象构造函数,可通过调用
apply()和call()方法实现
apply()和cal()方法都准许传递对象this,可实现子对象构造函数种调用父对象构造函数时,将子对象this和父对象this捆绑在一起

function Parent() {
//定义父级对象的构造函数
    this.parent = "parent";
}
function call() {
//定义子级对象构造函数-使用apply()或call()方法
    Parent.call(this);
    this.child = "child";
}
var child = new Child();
console.log(child);

3.组合方式继承
也叫为经典继承,将原型链或原型式继承和借助构造函数技术组合在一起,引发其两种函数的一种继承方式

使用原型链和原型式继承实现对原型属性和方法继承

通过借助构造函数实现对实例对象属性的继承

function Parent() {
    this.name = "犬夜叉"
//    构造函数点1自有属性
}

Parent.prototype.age = 16;
//构造函数的原型属性

function child() {
    parent.call();
    //继承父级构造函数中自有属性
    this.job = "妖狐"
}
Child.prototype = parent.prototype;

var child = new Child();

console.log(child.job);
console.log(child.age);
console.log(child.name);

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

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

相关文章

  • javascript面向对象“多态”

    摘要:之前,本质上不能算是一门面向对象的编程语言,因为它对于封装继承多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。所以在中出现了等关键字,解决了面向对象中出现了问题。 ES6之前,javascript本质上不能算是一门面向对象的编程语言,因为它对于封装、继承、多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以让我们以...

    JerryWangSAP 评论0 收藏0
  • 面向对象JavaScript继承(一) 类式继承

    摘要:那你们肯定会问为什么共用,而没有共用呢,下面就给你解释,请看引用类型是共用的值类型是私用的。 引言 面向对象的编程语言都具继承这一机制,而 JavaScript 是基于原型(Prototype)面向对象程序设计,所以它的实现方式也是基于原型(Prototype)实现的. 继承的方式 类式继承 构造函数继承 组合继承 原型式继承 寄生式继承 寄生组合式继承 1.类式继承 //声明父...

    forsigner 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0

发表评论

0条评论

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