继承
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() 用于检索字符串中的正则表达式的匹配