资讯专栏INFORMATION COLUMN

js中的继承

April / 360人阅读

摘要:中的继承类继承实现继承改变这样不是继承,和变成了兄弟关系正确做法一,儿子的原型原型链指向父亲的原型正确做法二,类继承找不到就拿父级的

js中的继承

ES5 prototype

Parent.prototype.__proto = Child.prototype

Object.setPrototypeOf( Child.prototype, Parent.prototype )

ES6 class

类继承

ES5 prototype 实现继承
function Parent(){
    this.name = "parent name";        
}
Parent.prototype.eat = function(){
    consle.log(‘parent eat");
}
function Child(){
    Parent.call(this);// 改变 this
    this.name = "child name";
}
Child.prototype = Parent.prototype; // 这样不是继承,Parent 和 Child 变成了兄弟 关系
// 正确做法 一 , 儿子的原型 原型链 指向 父亲的原型
Child.prototype.__proto__ = Parent.prototype;
// 正确做法 二 , 
Object.setPrototypeOf( Child.prototype, Parent.prototype );

let child = new Child();
console.log(child.name);// parent name
child.eat(); // parent eat
class 类继承
class Parent{
    constructor(){
        this.name = "parent name";
    }
    eat(){
        console.log("parent eat")
    }
}

class Child extends Parent{
    constructor(){
        super();
        consle.log(this)// child
    }
    
}

let child = new Child();
console.log(child.name) // parent name , Child 找不到就拿父级的
child.eat()// parent eat

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

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

相关文章

  • JS中的继承(上)

    摘要:中的继承上学过或者之类语言的同学应该会对的继承感到很困惑不要问我怎么知道的的继承主要是基于原型的对的原型感兴趣的同学可以了解一下我之前写的中的原型对象相信很多同学也跟我一样刚开始接触的面向对象编程的时候都抱着一种排斥的心态为什么这么 JS中的继承(上) 学过java或者c#之类语言的同学,应该会对js的继承感到很困惑--不要问我怎么知道的,js的继承主要是基于原型(prototype)...

    Fundebug 评论0 收藏0
  • JS对象继承与原型链

    摘要:此用来定义通过构造器构造出来的对象的原型,构造器内部的代码用来给对象初始化。 对象继承 VS 类继承 在 class-based 的面向对象的世界里,要出现对象,必须先有类。类之间可以继承,类再使用 new 操作创建出实体,父子对象之间的继承体现在父类和子类上。你不能说 对象 a 继承了对象 b,只能说 class A 继承了 class B,然后他们各自有一个实例a、b。 JS中实现...

    QLQ 评论0 收藏0
  • JS中的类与类的继承

    摘要:首先捋清楚类和对象的关系类比如人类,指的是一个范围对象比如某个人,指的是这个范围中具体的对象中的作为构造函数时,就是一个类,通过操作符,可以返回一个对象。 JS中的类与类的继承 我们知道,JS中没有类或接口的概念,即不能直接定义抽象的类,也不能直接实现继承。不过,为了编程的方便,我们可以在 JS 中模拟类和继承的行为。首先捋清楚类和对象的关系: 类:比如人类,指的是一个范围; ...

    Tangpj 评论0 收藏0
  • Javascript 设计模式读书笔记(三)——继承

    摘要:的继承方式属于原型式继承,非常灵活。当使用关键字执行类的构造函数时,系统首先创建一个新对象,这个对象会继承自构造函数的原型对象新对象的原型就是构造函数的属性。也就是说,构造函数用来对生成的新对象进行一些处理,使这个新对象具有某些特定的属性。 继承这个东西在Javascript中尤其复杂,我掌握得也不好,找工作面试的时候在这个问题上栽过跟头。Javascript的继承方式属于原型式继承,...

    cangck_X 评论0 收藏0
  • JS对象(3)经典对象创建与继承模式

    摘要:对象经典对象创建与继承模式组合模式创建对象中创建一个对象的方式多种多样,每种方式都有自己缺点或者优点,具体的可以参考而组合使用构造函数模式和原型模式来创建自定义类型算是最常见的方式了。 title: JS对象(3)经典对象创建与继承模式 date: 2016-09-28 tags: JavaScript 0x01 组合模式创建对象 JS 中创建一个对象的方式多种多样,...

    hellowoody 评论0 收藏0
  • 你是否理解js的Object与Function与原型链

    摘要:原型对象是由创建的,因此原型对象的构造函数是构造函数也可以是称为对象,原型对象也就继承了其生父构造函数中的数据,也同时继承了原型对象的数据。当然这条原型链中的数据,会被还是还是这类构造函数继承,但是不会被这些继承,他们不处于同一个链条上。 js中,Function的本质是什么?Object的本质又是什么?js中有几条原型链? showImg(https://segmentfault.c...

    itvincent 评论0 收藏0

发表评论

0条评论

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