JavaScript高级第四天笔记
01-继承
现实生活中的继承,子承父业, 如儿子继承了父辈的财产,公司等
程序中的继承,一个对象可以使用另一个对象中的方法或属性
02-原型链继承
实现继承的方式
1.原型链继承
构造函数创建出来的实例对象可以直接访问(继承)原型对象上的任意成员
03-原型替换
把之前的原型对象替换成一个新对象,在新对象里面添加需要的成员
**原型替换的问题:**会造成 constructor
属性的丢失
**解决方案:**给新的原型对象手动添加 constructor
属性即可。
**注意点:**当实例对象在创建的时候,实例的原型链就已经定下来了
小结:
**原型链继承:**两种写法
1.给原型对象添加 Person.prototype.xxx = yyy;
– 写法比较重复,麻烦
2.原型替换 Person.prototype = { // … };
问题:造成constructor
属性丢失
解决:手动添加即可
04-原型替换的练习
05-借用构造函数继承
借用构造函数继承:
借用构造函数来继承里面添加的属性
借用 call apply
call 可以调用Person函数
Person函数内的this 指向了call的第一个参数
06-组合继承
组合继承:
是把原型链继承 + 借用构造函数继承 一起使用
借用构造函数继承–可以继承到构造函数中添加的属性
原型链继承 – 可以继承到原型链上的方法
07-组合继承的优化
08-继承的面试题
09-创建正则表达式
正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用,经常用于表单校验,高级搜索等。
1.通过构造函数来new
构造函数RegExp
test()
:测试 是正则的方法
正则.test(字符串); 作用:测试字符串是否有符合正则的规律规则,如果有符合,就返回true
2.正则的字面量
var reg2 = /a/;
10-正则的组成
正则的组成:普通字符 + 元字符
普通字符:没有实际含义,写啥就匹配啥
元字符:有实际含义的
常见的元字符:
-
\d 匹配 0-9 的任意一个数字
-
\D 匹配非 0-9
-
\w 匹配单词字符 大小写字母 数字 _
-
\W 匹配非单词字符
-
\s 匹配不可见字符
-
\S 匹配可见字符
-
.
小数点 匹配除了换行的任意字符\.
对.进行转义,小数点就只匹配点
11-正则的优先级
或者 |
()
分组 优先级最高
12-正则字符类的元字符
13-边界类元字符
边界类元字符
开始 ^ [^] 非
结束 $
^ $
一起使用 表示精确匹配 写啥匹配啥 ==> 经常用于表单校验中
14-量词类元字符
- 次数 >= 0
- 次数 >= 1
- ? 0 或 1
- {m} 次数是m次 =m
- {m,} 次数是 >= m次
- {m,n} 次数是 m 到 n之间,包含m和n
注意点:量词就近修饰