JavaScript(十四 )继承 正则表达式

继承

1.对象冒充继承

通过call放修改父类的构造函数中this的指向,来完成对子类添加属性
示例:人 学生 小学生

   function Person(name, age) {
        this.name = name;
        this.age = age;
        this.say=function(){
            console.log('哈哈哈哈');
        }
    }
    Person.prototype.run = function () {
        console.log(this.name + " 两条腿跑的飞起。。。。。");
    };

    //学生对象
    function Student(name, age, no) {
        // this.name=name;
        // this.age=age;
        Person.call(this, name, age);//对象冒充
        this.no = no;
    }

    //小学生
    function SmallStudent(name, age, no, tag) {
        Student.call(this, name, age, no);
        this.tag = tag;
    }

    // var p=new Person('李四',30);
    var s = new Student('王二小', 15, '2001');
    // console.log(p);
    console.log(s);
    // s.run();
    s.say();

2.原型链继承

子类在获取属性和方法的时候,会根据链条向上查找,这种继承关系称为原型链继承(__proto,constructor);
原型链继承的查找顺序:实例对象—>构造函数—>原型对象---->父类的实例---->父类的构造函数----->父类的原型----->…

 //原型链继承
    function Animal(){
    }

    Animal.prototype.eat=function(){
        console.log('吃饭.....');
    };
    function Dog(){
    }
    Dog.prototype=new Animal();//把动物对象的实例赋值给"狗"类的原型对象
    var d=new Dog();
    // console.log(d);
    d.eat();

3.组合式继承(对象冒充+原型链)

用对象冒充实现属性的继承,用原型链实现原型中方法的继承

  //组合继承
    function Animal(name, age) {
        this.name = name;
        this.age = age;
    }

    Animal.prototype.eat = function () {
        console.log('吃饭.....');
    };

    function Dog(name, age, color) {
        Animal.call(this, name, age);
        this.color = color;
    }

    Dog.prototype = new Animal();//把动物对象的实例赋值给"狗"类的原型对象
    Dog.prototype.say = function () {
        console.log(this.name + " 汪汪汪....");
    };

    var d = new Dog('小黄', 2, '黄色');
    // console.log(d);
    d.eat();
    d.say();

    var a=new Animal('哺乳动物',10);
    a.eat();
    // a.say();//error  父类不能调用子类方法

正则表达式

正则表达式是一种对字符串进行操作的逻辑公式。

一、创建正则表达式

RegExp

1.new RegExp(规则,修饰符);

参数:
规则: 规则为字符串类型
修饰符:即对规则的一种补充,常见:g,i,m
g 全局匹配
i 忽略大小写
m 多行匹配

2.使用字面量的形式

var p=/规则/修饰符

二、正则与字符串

在开发中经常使用正则表达式来处理字符串
match 匹配字符串中满足规则的内容,生成一个数组
Replace 可以使用规则去替换字符串中内容,生成新字符串
search 查找字符串中的指定的字符,

三、字符集

[] 任意一个
范围: [0-9] 数字 [a-z] 小写字母 [A-Z] 大写字母
^ 非 [^0-9] 非数字 [^a-zA-Z] 非字母

注意:在[]内部^,表示 非 的含义,在[]外,表示以…开头

$ 以…结尾

\ 转义字符 [ .

四、元字符

元字符是指具有个数含义的字符

. 换行和结束符之外的所有字符
\d 数字 [0-9]
\s 空白字符
\w 字母和数字和_ [0-9a-zA-Z_]

\D 非数字 [^0-9]
\S 非空白字符
\W 非字母、数字和下划线

五、量词

? 零个或一个

  • 零个或多个
  • 一个或多个
    {m} m个
    {m,} 至少m个
    {m,n} 至少m个,最多n个

六、正则的属性和方法

lastIndex 指定下一次开始匹配的位置
test() 校验字符串 true false
exec() 用于检索字符串中的正则表达式的匹配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值