美文网首页
对象和继承

对象和继承

作者: 再见噜噜班 | 来源:发表于2019-12-25 21:26 被阅读0次

JavaScript中对象的创建方式有以下几种:

  • object 构造函数
    let a = new Object()
    a.name = 'king'
    a.getName = function () {
        console.log(this.name)
    }

缺点:动态添加属性,代码量大

  • 对象字面量
   let b = {
        name: 'king', getName: function () {
            console.log(this.name)
        }
    }

缺点:创建多个对象时,有重复代码,不能复用

  • 工厂模式
    function C(name) {
        let obj = {
            name: name,
            getName: function () {
                console.log(this.name)
            }
        }
        return obj
    }
    let c = C('king')

缺点:对象没有特定的类型,都是Object,不好区分

  • 构造函数
   function D(name) {
        this.name = name
        this.getName = function () {
            console.log(this.name)
        }
    }
    let d = new D('king')

缺点:每次创建对象都产生新的方法,不能复用,浪费内存

  • 构造函数+原型
   function E(name) {
        this.name = name
    }
    E.prototype.getName = function () {
        console.log(this.name)
    }
    let e = new E('king')

属性在构造函数中,方法绑定在原型上,节省内存

继承

  • 借用构造函数继承
    这里用到了call方法来改变this指向来实现继承属性
    function Person(name){
        this.name = name
    }
    Person.prototype.getName = function(){
        console.log(this.name)
    }

    function Boy(name){
        //借用构造函数改变this指向,继承父类的属性
        Person.call(this,name)
        this.gender = 'male'
    }
  • 原型链继承
    //将子类型的原型对象指向父类型的实例来继承父类型的方法
    Boy.prototype = new Person()
    //上一步操作会使得子类型原型中的constructor指向父类,需要更改为子类函数
    Boy.prototype.constructor=Boy
  • 构造函数+原型链组合继承
    用构造函数继承属性,原型链继承方法,以上两块代码结合即为组合继承。

相关文章

  • 对象和继承

    JavaScript中对象的创建方式有以下几种: object 构造函数 缺点:动态添加属性,代码量大 对象字面量...

  • javascript对象继承顺序、分类和内置Math对象

    javascript对象继承顺序、分类和内置Math对象 一、对象的继承顺序 所有对象都是从Object对象继承过...

  • 深入理解js中实现继承的原理和方法

    原型对象继承 ==原理:原型对象的属性可以经由对象实例访问== 下面的例子,所含【对象继承】和【构造函数继承】,用...

  • python语法入门五

    类和对象 类和对象 基础 继承:python为多继承 类、类对象和实例对象 当实例对象声明后,再删除类对象,那么该...

  • *面向对象的特征——继承的意义和操作过程

    继承是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为,一个类型继承...

  • 对象继承和构造函数继承

    对象继承 指定哪个对象是新对象的[[prototype]] 对象字面量隐式指定Object.prototype为其...

  • 前端基础(问答28)

    keywords: 继承。 继承有什么作用? 继承可以使对象使用其他对象的属性和方法。例如Person、Male、...

  • JS对象和继承

    JS对象和继承 JS是个无类的语言,因此对于对象构造器(类)和对象的继承就值得我们研究了。本文讲述JS中构造器的表...

  • JS对象和继承

    JS 对象创建的三种方式 字面量创建方式 系统内置构造函数方式 自定义构造函数 继承方式 for in 继承 原型...

  • JS原型和原型链

    一、原型 也是一个对象(被继承的对象被称作原型)。用来给实例共享属性和方法(实例对象可以继承原型对象的属性) 继承...

网友评论

      本文标题:对象和继承

      本文链接:https://www.haomeiwen.com/subject/rcjhoctx.html