面向过程(函数)编程

面向过程(函数)编程,第1张

一、面向过程(函数)编程

1、流程

2、在流程中的每一步中都需要哪些数据

3、在面相过程编程中,使用变量和函数时,没有所属。没有主语

4、有点像单干

二、面向对象编程

1、数据(类)

2、流程

3、在面向过程编程中,使用变量和函数时,都有所属。

4、有点像团队配合

面相对象编程描述时都有主语(所属)

谁的变量

谁的函数

谁在干啥

谁先干啥,谁再干啥

一、面向对象的基本概念:

面向对象的思想:人类的思想,人类的思维方式。

1、完成一件事情需要哪些角色(类)

2、流程(步骤)。 

二、类。

类:分类,数据类型,js中数据类型有基本类型和对象类型,我们类是对象类型。

类是对象的抽象。

一个类,一般有属性和方法

属性:描述的是类的特征,一般是名称

方法:描述的是类的行为,一般是动词。

三、对象。

对象:对象就是变量,是类的具体体现。

对象是类的实例。

JS中如何定义对象和类。

1、Json定义对象

缺点:

1)重复代码太多

2)从代码上不能区分,对象属于哪些类型   

var p = {
  "id": "007",
  "name": "宝宝",
  "sex": "女",
  "email": "12345@qq.com"
}
var p2 = {
  "id": "007",
  "name": "宝宝的宝",
  "sex": "男",
  "email": "12345@qq.com"
}
var p3={
  "id":"007",
  "name":"宝宝的大宝宝",
  "sex":"男",
  "email":"12345@qq.com"
}

用构造函数定义对象:

构造函数就是一个函数。

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

1、构造函数的名字,首字母大写

2、构造函数的调用new运算符

3、构造函数中,不用再写return语句了,因为预编译时,会自动加上return语句

4、构造函数中this是new出来的对象

构造函数的优点:

1、提高了代码的复用性

2、能够用程序来判断某个对象是不是属于某个类(使用运算符instanceof判断 返回值是boolean)

构造函数定义类,模板

function Person (id, name, age) {
  var this = new.Object() // 可写可不写
  this.id = id;
  this.name = name;
  this.sex = sex;
  this.age = age;
  return this // 不需要写
}

用类实例化一个对象

window.onload = function () {
  var p1 = new Person("007", "宝宝", "女", 21)
  var p2 = new Person("008", "宝宝的宝", "男", 21)
  alert(p1.name);
  alert(p2.name);
  alert(p1.instanceof Person); // true 这句话的意思是判断p1是不是在Person里
}

this代表的意思:(this必须是出现在函数内部的)

1、this所在函数是事件处理函数,那么this是事件源

2、this所在函数是构造函数。那么this是new出来的对象

3、this所在函数是类的方法,那么this是调用此方法时,写在方法名前面的对象

ES3:

没有类的概念   

对象:ES6中的类

实例:ES6中的对象

ES6中

类:ES3中的对象

对象:ES3中的实例

ES6中类的写法是个语法糖(对于程序员来说,只是改了一种写法):

ES6的class的写法,经过预编译后,还是ES3的写法

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1320668.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-11
下一篇 2022-06-11

发表评论

登录后才能评论

评论列表(0条)

保存