面向对象之组合继承&拷贝继承&ES6 class继承/////-jQuery基本语法

function Person(address,sex){

        this.foot = 2;

        this.head = 1;

        this.address = address;

        this.sex = sex;

}

function Man(name){

        //使用call或apply实现继承

        //Person.call(this,"北京","女");

        Person.apply(this,["北京","女"]);

        this.name = name;

}

var man1 = new Man("张三");

组合继承

也叫伪经典继承

将原型链继承和构造函数继承组合在一块

原型链实现对原型属性和方法的继承

借用构造函数实现对实例属性的继承

利用call、apply、bind只能继承父类实例属性的继承,不能继承父类原型上的属性和方法, 所以要借助原型链继承

function Person(){

        this.foot = 2;

        this.head=1;

         this.color="red";

}

Person.prototype.sayColor=function(){

         alert("我爱的颜色是:"+this.color);

}

function Man(name){

        Person.call(this);

        this.name=name;

}

Man.prototype = new Person();

Man.prototype.constructor = Man;

var man1= new Student("张三");

var man2= new Student("李四");

拷贝继承

把父对象的所有属性和方法,拷贝进子对象

将父对象的prototype对象中的属性,一一拷贝给Child对象的prototype对象,并且只拷贝原型上的东西

function Person(){}

Person.prototype.foot = 2;

Person.prototype.head = 1;

Person.prototype.saySelf=function(){

        alert("我有:"+this.foot+"只脚和"+this.head+"个头");

}

function Man(name){

        this.name = name;

}

function extend2(Child,Parent){

        var p = Parent.prototype;

        var c = Child.prototype;

        for(var i in p){

            c[i] =p[i];

        }

}

extend2(Man,Person);

var man1 = new Man("张三");

man1 .saySelf();

作业1:

创建构造函数Person,添加属性姓名(name)、语文成绩(chinese)、数学成绩(math);添加三个方法,分别返回姓名、语文和数学成绩

创建构函数Student,继承Person的属性和方法,并添加属于自己的属性年龄(age),添加属于自己的方法,返回年龄

创建Student的对象,并在页面上输出实例的姓名、语文、数学成绩和年龄

ES6 class继承

Class 可以通过extends关键字实现继承,让子类继承父类的属性和方法。extends 的写法比 ES5 的原型链继承,要清晰和方便很多。

ES6继承实际上是一种语法糖,底层就是原型链继承==通过new父类的实例给到子类的原型上

注:类里面所有的函数不需要写founction

多个函数之间不需要用逗号隔开

// 继承Person类中的属性和方法

// 创建类class 创建Person
class Person {

 // 类共有的属性放到constructor里面
    constructor(name, age, gender){
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
 
    sayHi(){
        console.log("hello");
    }
}
 
// 子类
class Chinese extends Person {
    constructor(name, age, gender, skin){
        // 在子类中,必须在constructor函数中,首先调用super(),表示调用父类中的构造函数
        super(name, age, gender);    // 相当于Person.call(this,name,age,gender)
        // 调用super之后才可以去写其他代码
        this.skin = skin;
    }
}

  // 利用类创建对象 new
let xm = new Chinese("xm", 20, "male", "黄");
console.log(xm);
xm.sayHi();

 

instanceof

instanceof是Java的一个保留关键字,左边是对象,右边是类,返回类型是Boolean类型。它的具体作用是测试左边的对象是否是右边类或者该类的子类创建的实例对象,是,则返回true,否则返回false。

我们可以使用instanceof的方式,来判断实例是哪一个类的实例,如果不属于不属于这个类就返回false,如果属于就返回true,实验证明:原型链继承的方式,子类的实例是属于父类的,而拷贝继承和构造函数绑定继承,子类的实例是不属于父类的。ES6 class继承的底层就是原型链继承,所以返回的是true。

jQuery基本语法

使用jQuery弹出提示框

为页面加载事件绑定方法

<script>

     $(document).ready(function() {

        alert("我是云南的!");

    });

</script>

$(document).ready()

$(document).ready()与window.onload类似,但也有区别

 jQuery选择器

jQuery 语法

jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作

基础语法是:$(selector).action()

jQuery基本选择器

基本选择器包括标签选择器、类选择器、ID选择器、并集选择器和全局选择器

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值