全文共3525字,预计学习时长12分钟
图源:pexels
一切都从对象开始。
对象,即我们相互交流的一个载体,有其属性和方法。对象是面向对象编程的核心,不仅用于JavaScript,而且还适用于Java、C语言、C++等。不再考虑单个变量和函数,而选择自给型的对象。
以下是在讨论面向对象编程(OOP)时最常用到的概念:
· 对象,属性,方法
· 类
· 封装
· 抽象
· 复用/继承
· 多态性
· 关联
· 聚合
· 组合
1. 对象,属性,方法
1.1 对象字面量(Objectliteral)
在大括号中设置属性,从而在JavaScript中创建一个新对象。对象字面量属性值可以是任何数据类型,如函数字面量、数组、字符串、数字或布尔值。
下面创建一个命名图书的对象,其属性包括作者、出版年份、标题和方法。
— summary.
constbook = {
title: "Hippie",
author: "Paulo Coelho",
year: "2018"
}
对象创建完成后,可以使用点记法获取值。例如,可以使用book.title.获取标题的值,还可以使用方括号book[‘title’]访问属性。
1.2 对象构造函数(Objectconstructor)
对象构造函数与常规函数相同。每次创建对象时都会用到。可将其与新关键字一起使用。当需要创建具有相同属性和方法的多个对象时,对象构造函数非常有用。
constbook = {
title: "Hippie",
author: "Paulo Coelho",
year: "2018"
}const book1 = {
title: "The Alchemist",
author: "Paulo Coelho",
year: "1988",
}
如果要创建多个书籍(book)对象,必须为每本书复制代码。可以继续创建 book对象,但这有点麻烦——不过对象构造函数有助于再次使用对象字面量。
functionBook(title, author, year) {
this.title = title;
this.author = author;
this.year = year;
}const book1 = new Book ('Hippie', 'Paulo Coelho',
'2018');
console.log(book1);
> Book {
title: "Hippie",
author: "Paulo Coelho",
year: "2018"
}// if we want to create more than onebook just we call
function book with new keyword.const book2
= new Book ('TheAlchemist', 'Paulo Coelho', '1988');
book1 和 book2创建 Book的实例并将其分配给变量。想知道一个对象是否是另一个对象的实例。可以用instanceof。
book1 instanceof Book
> true
1.3 Object.create()方法
JavaScript中的每个对象都将从主对象创建。任何时候使用大写字母“O”时,指的都是主对象。我们可以在console控制台中打印主对象。主对象有很多方法,下面来看object.create()方法。