高级javascript

面向对象的编程思想:

根据需求,抽象出相关的对象,总结对象的特征和行为,把特征变成属性;行为变成方法,然后定义js构造函数,实例化对象,

通过对象调用属性的方法,完成相应的需求

面向对象的特性:封装,继承,多态

封装:就是代码的封装,把一些特征和行为封装在对象中

原型的作用:

1.为了数据共享,把想要节省空间的属性或者方法写在原型对象中,达到了数据共享,实现了节约内存空间。

2.为了实现继承

原型的写法:

构造函数.prototype.属性=值

构造函数.prototype.方法=值

function Student(name,age,sex){

this.name=name;

this.age=age;

this.sex=sex;

}

//简单的原型写法

Student.prototype={

//构造器

constructor:Student,

height:"175",

weight:"55kg",

study:function(){

console.log()

}

}

 

 

继承:继承是为了数据共享

为了数据共享,改变原型指向,做到了继承----通过改变原型指向实现的继承

缺陷:因为改变原型指向的同时实现继承,直接初始化了属性,继承过来的属性的值都是一样的

只能重新调用对象的属性进行重新赋值

 

//解决方案:继承的时候,不改变原型的指向,直接调用父级的构造函数的方式来为属性赋值

即借用构造函数继承: 构造函数名字.call(当前对象.属性)

 

//借用构造函数可以解决属性的继承,并且值不重复的问题

缺陷:父级类别中的方法不能继承

 

this的指向:

普通函数中的this指向window

对象.方法中的this指向当前的实例对象

定时器方法中的this指向window

构造函数中的this指向实例对象

原型对象方法中的this指向实例对象

 

apply和call的使用方法:

apply的语法:

函数名字.apply(对象,[参数1,参数2......]);

方法名字.apply(对象,[参数1,参数2.....]);

call的语法:

函数名字.call(对象,参数1,参数2......);

方法名字.call(对象,参数1,参数2......);

 

作用:改变this的指向,只要是想使用别的对象的方法,并且希望这个方法是当前对象的,那么就可以使用apply或者是call的方法

改变this的指向

 

闭包:

闭包的概念:函数A中包含一个函数B,函数B中可以访问函数A中定义的变量或者是数据,此时形成了闭包

闭包的模式:函数模式的闭包,对象模式的闭包

闭包的作用:缓存数据,延长作用域链

闭包的优点和缺点:缓存数据

 

递归:函数中调用函数自己,此时就是递归,递归一定要有结束的条件

 

正则表达式:也叫规则表达式,按照一定的规则组成的一个表达式,这个表达式的主要作用是匹配字符串的

正则表达式的组成:是由元字符或者是限定符组成的一个式子

元字符:  

.    除了\n以外的任意的一个单个字符

[ ]  范围

() 分组,提升优先级

|  或者

*  0次到多次

+ 1次到多次

? 0次到1次

\d 数字中的一个

\D 非数字

\s 空白符

\S 非空白符

\W 特殊符号

\w  非特殊符号

 

 

邮箱的正则表达式:

ab2121_3.-df@itash.com.cn

[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值