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();  
  • 相关阅读:
    创建HttpFilter与理解多个Filter代码的执行顺序
    Filter
    JSTL
    EL
    JavaBean
    HttpSession之表单的重复提交 & 验证码
    相对路径和绝对路径
    HttpSession之简易购物车
    HttpSession
    Cookie
  • 原文地址:https://www.cnblogs.com/rickdiculous/p/13727590.html
Copyright © 2011-2022 走看看