zoukankan      html  css  js  c++  java
  • ES5中的继承

    ES5中的继承
    1.JAVASCRIPT中的继承,不是真正意义上的面向对象继承,而是JS中特有的,和面向对象继承有点区别的,就是js的原型
    2.利用构造函数
    缺陷:不能继承原型的方法
    解决:字类的prototype等于基类的实例(还是有一些缺点的)

                //利用构造函数,但是无法继承父类原型上的方法
                function P(){
                    this.name = 'parent'
                    this.say = function(){
                        console.log('咕咕')
                    }
                }
                P.prototype.test = function(){
                    console.log('yuanxing')
                }
                
                function C(){
                    P.call(this);
                    this.name = 'child'
                    this.age = 11
                }
                var child = new C();
                child.say();
                child.test();  //报错
                

    接上。把C的prototype变成P的一个实例,

    function P(){
                    this.name = 'parent'
                    this.say = function(){
                        console.log('咕咕')
                    }
                }
                P.prototype.test = function(){
                    console.log('yuanxing')
                }
                
                function C(){
                    //在构造函数C的内部,执行了P.call(this)这句代码,改变了P构造函数内部的this指向,实现C继承P的属性和方法,P拥有的同名属性会被C替换了。
                    P.call(this);
                    this.name = 'child'
                    this.age = 11
                }
                
                //因为P的实例可以访问到P的prototype,
                C.prototype = new P();
                
                var child = new C();
                child.say();
                child.test();  
  • 相关阅读:
    Android 监听键盘的弹起与收缩
    Android Glide+CircleImageView实现加载圆形图片列表
    Java 集合
    Java 文件IO续
    Java 文件IO
    Java 网络编程
    Android AIDL Service
    Android 四大组件之Service
    Android 开源项目分类汇总(转)
    Android SQLite数据库
  • 原文地址:https://www.cnblogs.com/rickdiculous/p/13727590.html
Copyright © 2011-2022 走看看