JavaScript 类和对象
类和对象 是面向对象编程的基本概念,围绕着现实生活中的实体展开。
类: 类首次在ES6引入的新版本中被引入,取代了以前使用的函数。类只是对象的蓝图,主要用于创建对象。如果我们将其与现实生活中的示例相关联,那么它就像建筑物或房屋的方案,其中方案包含有关门、窗户、地板等的详细信息。基于蓝图(即类)创建一个对象,可以在这个示例中称之为房子。因此,一个方案可以用来建造很多房子,同样,一个类可以用来创建很多对象。因此,类不是现实生活中的实体,但对象是。
创建JavaScript类: 要创建JavaScript类,我们必须遵循以下语法。
语法:
// creating a class
class Name {
constructor(var) {
this.var = var;
}
}
JavaScript 类方法: 在 JavaScript 中定义类方法是简单的,我们只需要在方法名后面加上 ()。
语法:
class Name {
constructor(var) {
this.var = var;
}
// defining method
method() {
//Code Here
}
}
类的 Getter 和 Setter: 我们可以使用 getter 和 setter 方法来获取对象的值和设置对象的值。我们可以使用 get 关键字来定义 getter 方法,使用 set 关键字来定义 setter 方法。
语法:
class Name {
constructor(var) {
this.var = var;
}
// defining getter method
get method() {
//Code Here
}
// defining setter method
set method(value) {
this.var = value;
}
}
示例1: 下面的代码演示了JavaScript类的创建和不同的实现方式。
JavaScript
class OOPs {
constructor(name) {
this.name = name;
}
// Getter method
get langName() {
return this.name;
}
// Setter method
set langName(x) {
this.name = x;
}
hello(){
console.log(`Hello ${this.name}`)
}
}
let obj = new OOPs('JavaScript');
console.log(obj.name);
obj.langName = 'Java';
console.log(obj.name);
输出:
JavaScript
Java
对象: 除了 7种基本数据类型 之外,JavaScript中最重要的数据类型是对象。尽管这种数据类型的本质与基本数据类型完全不同。这意味着在基本数据类型中只存储一个值,而对象可以存储多个值,甚至是不同的类型。
对象创建: 以下是使用名称 object_name 声明对象的语法,对象内部具有键值对的成员,并且所有成员都在{}中包含。
语法:
const object_name = {
key_1: value_1,
key_2: value_2,
...
}
我们也可以用一行来定义它,但这样的定义方式增加了可读性。
JavaScript对象属性: 在JavaScript中,对象内部的成员以键:值的形式被称为对象属性。例如,上述语法中的key_1: value_1和key_2: value_2是对象的属性。
访问对象属性的方法:
1. 使用点标记法:
语法:
object_name.key_1
2. 使用方括号表示法:
语法:
object_name["key_1"]
JavaScript嵌套对象: 在这种情况下,一个对象包含另一个对象。
语法:
const object_name-1 = {
key_1: value_1,
key_2: value_2,
const object_name-2 = {
key_3: value_3,
key_4: value_4,
}
}
JavaScript对象方法: 在JavaScript中,我们可以向对象添加方法。
语法:
const object_name-1 = {
method_name: function
() {
//code here
}
}
示例: 在给定的示例中,我们可以看到如何应用Javascript嵌套对象,并使用不同的访问方法。
Javascript
const GFG = {
topic: 'OOPs',
lang: 'JavaScript',
sub_topics: {
topic_1: 'Class',
topic_2: 'Object'
}
}
console.log(GFG.topic);
console.log(GFG.sub_topics.topic_1);
console.log(GFG["lang"]);
console.log(GFG.sub_topics["topic_2"]);
输出:
OOPs
Class
JavaScript
Object