LearnWeb19-JS04-类与对象
[!summary]+
JS 中的一切变量皆为对象,可以将对象理解为一个包含相关数据和方法的集合(变量 & 函数)我们也将其称之为属性和方法,就像我们在 python 里做的那样,本篇为 mdn_JS对象基础,mdn_JS对象原型 的阅读笔记
如果 面向对象编程基本概念 不太清楚的话,可以看一下这个链接,了解一下下面这些基本概念:derive 派生 | oriented 面向 | polymorphism 多态 | override 重写/重载 | encapsulation 封装 | private 私有 | delegation 委派 |
从声明对象开始
手动声明对象(字面量)
在 JS 中声明一个对象实际上和声明一个字典一样,使用 {}
就可以声明一个对象,{}中可以包含属性甚至函数,下面给出一个例子:
1 |
|
可以看出该声明的对象中,不仅包含属性: name, age, 还包含方法 bio, introduce,可以看出方法存在两种不同的写法,更常用的是第二种简写。
这种手动写出对象的内容来创建的特定对象叫做对象字面量(object literal),与从定义好的类实例化出来的对象不同。
基于函数来批量声明对象
当我们需要批量创建多个同类对象的时候,按照上面的方法来定义就会显得十分麻烦,这个时候我们可以使用函数来批量声明对象。
1 |
|
通过函数来声明对象的时候:用首先定义一个空对象,然后去修改对象属性和对象的方法,实现批量处理。
“this” 使用和含义
this 指代代码运行时调用 this 的对象本身,这在定义单个对象字面量的时候可能没什么用,但是当我们有多个对象,这样这种时候通过使用 this,就可以使得函数定义是更通用的,就像上面的例子中,aiken.bio
和 metisy.bio
都能正确的打印出其年纪和名称。
使用类(构造函数)来声明对象
使用类来声明对象是各种编程语言中最通用的一种声明对象的方式,JS 一切皆为对象的设计思想,使得 JS 中定义类的方式和定义函数的方式实际上是十分相似的,这里主要的区分在于用构造函数声明新对象的时候,我们使用 new
关键字。下面给出一个例子:
1 |
|
可以看出,使用构造函数的方式的时候,我们无需指定返回值,但需要使用 new 关键词去声明新的对象。