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();

猜你喜欢

转载自www.cnblogs.com/lanSeGeDiao/p/9031958.html