zoukankan      html  css  js  c++  java
  • js 继承(this,上下文,apply/call,构造器)理解 未完待续

    说继承之前说说: oop面向对象   oop三大特性:封装,继承,多态 
    this :简单理解:谁调用谁表示this(这个有瑕疵) 
    继承的意义:
    理解:这里使用java 的继承进行理解----子类继承父类就可以使用父类的方法以及属性。
    使用场景:可以把公用的方法及属性放入父类,而非公有的放入子类。这样可以简化代码。
    业务描述:定义一个js构造器人  在该构造器中定义一个名字和说话的方法
    然后定义学生,学生有自己的年龄,但学生也是人所以就继承人,就不需要再写say(),和name了
     
    js 实现继承方式如下,
    //1、构造器式继承
    function Person(name) {
        this.name=name;
        this.say=function () {
        console.log("name---"+this.name)
        }
    }
    function Student(age) {
        this.age=age;
        this.jichengfn=Person;//
        this.jichengfn(name);
    }
    var s=new Student("xlz",12)
    s.say();
    
    //2、使用call/apply  的区别在于第二个参数 call 是多个参数   而apply 的//第二个参数是数组   意义:改变this的指向
    function Person(name) {
        this.name=name;
        this.say=function () {
        console.log("name---"+this.name)
        }
    }
    function Student(age) {
        this.age=age;
        Person.call(this,arguments[0]);    //这里的arguments 表示实参数组
    }
    var p=new Student("xlz",12)
    s.say();
  • 相关阅读:
    less-循环写法
    利用IntersectionObserver完成懒加载、加载更多
    通过is切换组件
    css3-背景渐变
    css-六边形、平行四边形、扇形实现
    vue-利用递归组件完成一个树形组件
    event loop 事件循环
    vue-组件间通信
    video 背景图平铺
    JS 事件委托
  • 原文地址:https://www.cnblogs.com/lanSeGeDiao/p/9031958.html
Copyright © 2011-2022 走看看