企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] # 面向对象 面向对象更贴近我们的实际生活,可以使用面向对象描述现实世界事物.但是事物分为具体的事物和抽象的事物 ![](https://img.kancloud.cn/67/bc/67bcc1e20583c6804a9ef55dabc2021f_498x143.png) **面向对象的思维特点:** 1.抽取(抽象)对象共用的属性和行为组织(封装)成一 个类(模板) 2.对类进行实例化,获取类的对象 面向对象编程我们考虑的是有哪些对象,按照面向对象的思维特点不断的创建对象使用对象指挥对象做事情. ## 2.1对象 现实生活中:万物皆对象,对象是一个具体的事物 ,看得见摸得着的实物。例如, 一本书、一辆汽车、 一个人可以是“对象”, 一个数据库、一张网页、 一个与远程服务器的连接也可以是“对象”。 在JavaScript中,对象是一组无序的相关属性和方法的集合 ,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的: ●属性:事物的特征,在对象中用属性来表示(常用名词) ●方法:事物的行为,在对象中用方法来表示(常用动词) ## 2.2类class 在ES6中新增加了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象。 ![](https://img.kancloud.cn/23/95/239518df9b0d3120f11420820e1c3589_1164x391.png) 2.2 类 class ![](https://img.kancloud.cn/4e/3a/4e3aeba305330ccaec2c9a50e5d5cb97_723x436.png) ## 2.3创建类 语法: ~~~ class name { // class body } ~~~ 创建实例: ~~~ var XX=newname(); ~~~ 注意:类必须使用new实例化对象 ## 2.4类constructor构造函数 **constructor()**方法是类的构造函数(默认方法) ,**用于传递参数返回实例对象**,通过new命令生成对象实例时 ,自动调用该方法。如果没有显示定义类内部会自动给我们创建一个**constructor()** ~~~ // 1.创建类class 创建一个明星类 class Star { constructor(uname, age) { this.uname = uname ; this.age = age; // 2.利用类创建对象new var 1dh = new Star('刘德华',18); var zxy = new Star('张学友',20); console.log(1dh); console.log(zxy); //(1)通过class关键字创建类,类名我们还是习惯性定义首字母大写 //(2)类里面有个constructor函数,可以接受传递过来的参数,同时返回实例对象 //(3) constructor 函数只要new生成实例时,就会自动调用这个函数,如果我们不写这个函数,类也会自动生成这个函数 //(4) 生成实例new不能省略 //(5)最后注意语法规范,创建类类名后面不要加小括号,生成实例类名后面加小括号,构造函数不需要加function ~~~ ## 2.5类添加方法: 语法: ~~~ class Person { constructor (name,age) { // constructor 构造器或者构造函数 this.name = name ; this.age = age; say() { console.log (this.name + '你好') ; } } ~~~