欢迎光临散文网 会员登陆 & 注册

千锋教育Kerwin系列前端教程1000集(适合前端0基础,h5(html5)/

2023-07-12 11:41 作者:桥北的猪  | 我要投稿

1.面向过程编程思想和面向对象编程思想的区别

01.面向过程编程:强调步骤顺序

程序 = 算法 + 语法;

面向过程编程思想的缺陷:

a.随着问题规模的增加,代码逐渐难以控制

b.复用性很差,只能复用函数

02.面向对象的编程:

强调对象(最后再考虑过程,但肯定不是抛弃了过程)

程序 = 对象1 + 对象2 + .... + 对象n

对象:万物皆为对象

2.类和对象的概念

属性-----抽象时的名词

方法-----抽象时的动词

对每一个对象进行抽象

抽象-----对事物加以描述的过程

类:拥有相同属性和行为的对下那个的集合(模板)

对象:类的实例化(强调真实存在且唯一性)

目标:为了创建自定义类型

3.ES5方法创建类

JS运用了面向对象的思想,但是却没有类的语法

解决方案:用函数模拟类,被当作类的函数本质是构造函数

this:

a.与事件体连用,代表触发该事件的元素

b.与普通函数连用,代表调用改进函数的对象

c.与箭头函数连用,代表其父元素的前缀

d.与构造方法连用,代表new出来的对象

普通函数与构造函数的区别:

a.习惯上构造函数首字母大写

b.构造函数必须和new连用

c.构造函数不能添加return,因为自动返回的是地址

4.ES6创建类

class 类名 {

构造函数---new时调用的函数

constructor(参数列表){

}

去掉function的普通函数

}

5.类的组合

组合:一个类的成员属性是另一个类的对象

6.小明问题案例

小明手里有两张牌,左手红桃A,右手黑桃K

问:当小明交换左右手的牌后,两只手分别剩下什么牌?

面向对象解决问题的思想:

a.找出该问题有几个对象

对象:小明

小明左手 小明右手

红桃A 黑桃K

b.根据对象抽象出其睡醒和方法创建类

person:leftHand rightHand

showCard() swapCard()

Hand:card

Card: color num

c.各个对象按顺序执行

class Card{

constructor(color,num){

this.color = color;

this.num = num;

}

}


class Hand{

constructor(card){

this.card = card;

}

}


class Person{

constructor(lh,rh){

this.lh = lh;

this.rh = rh;

}


showCard(){

console.log(this.lh.card.color,this.lh.card.num);

console.log(this.rh.card.color,this.rh.card.num);

}


swapCard(){

[this.lh.card,this.rh.card] = [this.rh.card,this.lh.card];

}

}


let card1 = new Card("♥","A");

let card2 = new Card("♠","K");

let lh = new Hand(card1);

let rh = new Hand(card2);

let xiaoming = new Person(lh,rh);


xiaoming.showCard();

xiaoming.swapCard();

xiaoming.showCard();

千锋教育Kerwin系列前端教程1000集(适合前端0基础,h5(html5)/的评论 (共 条)

分享到微博请遵守国家法律