JavaScript 中的对象和函数都是重要的概念。对象是一组键值对的集合,可以包含函数,而函数是执行任务和返回值的代码块。继承是一种机制,它允许我们在一个对象上定义对象的属性和属性行为,并通过 "继承",使一个对象能够访问另一个对象的属性和方法。
JavaScript 对象
JavaScript 中的对象是由花括号 {}
包裹的一组键值对。例如:
let person = {
name: 'John',
age: 30,
address: {
street: '123 Main St',
city: 'San Francisco',
state: 'CA'
},
sayHi() {
console.log(`Hi, my name is ${this.name} and I am ${this.age} years old.`)
}
};
在上面的代码中,我们创建了一个 person
对象,它有一个 name
、age
和 address
属性,每个属性都有对应的值。address
属性是一个嵌套的对象,里面又有三个属性。sayHi
是一个函数,该函数可以输出相应的信息。
我们可以通过点号 .
或括号 []
来访问对象的属性,例如:
console.log(person.name); // 输出 "John"
console.log(person['age']); // 输出 30
console.log(person.address.city); // 输出 "San Francisco"
person.sayHi(); // 输出 "Hi, my name is John and I am 30 years old."
JavaScript 函数
JavaScript 中的函数是一种代码块,它可以接受参数并返回值。例如:
function add(a, b) {
return a + b;
}
console.log(add(2, 4)); // 输出 6
在上面的代码中,我们定义了一个 add
函数,它获取两个参数 a
和 b
,并返回它们的总和。
我们还可以使用箭头函数来定义函数,例如:
const add = (a, b) => a + b;
console.log(add(2, 4)); // 输出 6
在上面的代码中,我们使用了箭头函数来定义函数,这比常规函数要更简洁。
JavaScript 继承
JavaScript 中的继承是通过原型链来实现的。每一个对象都有一个指向其原型的内部属性 [[Prototype]]
,通过该属性,一个对象可以访问其父对象的属性和方法。例如:
let person = {
name: 'John',
age: 30,
sayHi() {
console.log(`Hi, my name is ${this.name} and I am ${this.age} years old.`)
}
};
let student = Object.create(person);
student.major = 'Computer Science';
console.log(student.name); // 输出 "John"
console.log(student.major); // 输出 "Computer Science"
student.sayHi(); // 输出 "Hi, my name is John and I am 30 years old."
在上面的代码中,我们创建了一个 person
对象,并为 student
对象设置了其原型为 person
,这样 student
就能够访问 person
对象的属性和方法了。此外,我们增加了 major
属性,该属性仅限于 student
对象。
对继承进行自定义时,我们可以使用 JavaScript 的 class
关键字来更简单地定义类。例如:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHi() {
console.log(`Hi, my name is ${this.name} and I am ${this.age} years old.`);
}
}
class Student extends Person {
constructor(name, age, major) {
super(name, age);
this.major = major;
}
}
let john = new Person('John', 30);
let jane = new Student('Jane', 22, 'Computer Science');
john.sayHi(); // 输出 "Hi, my name is John and I am 30 years old."
jane.sayHi(); // 输出 "Hi, my name is Jane and I am 22 years old."
console.log(jane.major); // 输出 "Computer Science"
在上面的代码中,我们使用 class
关键字来定义 Person
和 Student
类。 Student
类从 Person
类继承,因此,Student
类可以访问其父类的所有属性和方法。super
方法在 Student
类的构造函数中被调用,用于传递参数并执行父类的构造函数。实例化对象后,我们可以使用 sayHi
方法打招呼,并访问 major
属性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript 对象、函数和继承 - Python技术站