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的写法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)