全面拥抱面向对象

举报
小妖现世 发表于 2020/07/23 21:02:33 2020/07/23
【摘要】 今天复习了函数,他还有一个高大上的名字全面拥抱面向对象,估计从今天开始之后,就要天天面向对象了!全面拥抱面向对象(Object Oriented Programming)函数:当函数执行的时候,会形成一个全新的执行上下文(函数体中的代码会在这个上下文中运行),代码运行中,会把所有创建的变量存储到当前上下文的AO(变量对象)中,这些变量是‘私有变量’:除当前上下文中可以使用这些变量的值,上下文...

今天复习了函数,他还有一个高大上的名字全面拥抱面向对象,估计从今天开始之后,就要天天面向对象了!

全面拥抱面向对象(Object Oriented Programming)

函数:当函数执行的时候,会形成一个全新的执行上下文(函数体中的代码会在这个上下文中运行),代码运行中,会把所有创建的变量存储到当前上下文的AO(变量对象)中,这些变量是‘私有变量’:除当前上下文中可以使用这些变量的值,上下文以外的环境不能直接使用私有变量的值

如果当前上下文中的一些私有信息,则需要函数提供对应的出口,把信息提供给外面使用,而这个出口在js函数中称为return

return后面放的一定是值:此处相当于把私有变量的值返回给外面使用

创建一个变量,用来接收函数执行完返回的值:return后面的值

函数名:函数本身

函数名():让函数执行,代表的是函数的返回值

如果函数中没有写return,默认的返回值是undefined

形参:用来存储执行函数时,传递进来的信息,形参是变量

实参:函数执行的时候,传递进来的值会赋值给形参变量=>传递的具体值在JS函数中称为实参,‘实参就是具体传递的值’

形参是创建函数时候设定的变量,实参是执行函数时候给形参传递的具体值

‘类’是对‘对象’的一种细分和公共部分的封装,而类别中派生出来的具体事务叫做类的‘实例’,实例既有属于自己私有的东西,也有继承各个类别中的公有信息,面向对象编程其实就是掌握‘对象’,‘类’,‘实例’之间的关系和知识,例如:类的封装继承和多态等信息

functiong Createperson(name,age){

    this.name=name;

}

let person1=new Createperson('heran',12);

new CreatePerson()执行和普通函数执行的联系:

1、new这种执行方式叫做“构造函数执行模式”,此时的CreatePerson不仅仅是一个函数名,被称为“类”,而返回的结果(赋值给person1的)是一个对象,我们称之为“实例”,而函数体中出现的this都是这个实例

构造函数(Constructor):基于构造函数创建基本值、自定义类的创建、instancedof

构造函数:

创建自定义类和对应实例,构造函数就是创建自定义类的

new 是js的关键字,可以构建类和实例,有特殊的意义;在普通函数执行之前加上new,此时函数就成了构造函数运行模式

类:函数数据类型

实例:对象数据类型

自定义类是拿函数创建的,而且是在普通函数的基础之上创建的

构造函数的返回值就是当前类的实例

形成私有作用域

形参赋值

变量提升

默认生成一个空对象,(这个对象是当前类的一个新实例)让当前作用的this指向这个空对象

代码执行

默认把当前作用域的this return出去

作用域是否销毁

实例都是对象数据类型的

构造函数里的this就是当前类的实例

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

普通函数:

1、运行商的区别:

形成私有作用域->形参赋值-变量提升-代码执行-作用域是否销毁

2、执行上的区别:

普通函数执行必须有小括号

构造函数执行:

形成私有作用域-形成赋值-变量提升-默认生成空对象-当当前作用域的this指向这个空对象-代码执行-默认把当前this return出去-作用域是否销毁

构造函数执行之前必须加上new,如果没有实参可以省略小括号;如果手动return一个基本知识,不会影响构造函数的返回值;如果return引用值,那构造函数的返回值就会发生变化(此时的返回值已经不是当前的实例了),

构造函数执行,因为也具备普通函数执行的的特点

1、和实例有关系的操作一定是this.xxx=xxx,因为this是当前类创造出来的实例

2、私有变量和实例没有必然的联系

创建实例的方式:

字面量创建方式(也是Number类的实例,也可以调取内置的公有方法)



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200