JavaScript 面向对象编程:构造函数、原型链和函数继承
JavaScript 面向对象编程:构造函数、原型链和函数继承
JavaScript 是一门面向对象的编程语言,它使用构造函数、原型链和函数继承等机制来实现面向对象编程。
构造函数
构造函数用于创建对象,它通过 new 关键字来调用。
/**
* Person1 构造函数
* @param {string} name
*/
function Person1(name) {
// 属性
this.name = name;
// 行为
this.introducSelf = function() {
return '大家好,我是' + name;
}
}
/**
* Person2 构造函数:定义函数
* @param {string} name
*/
function Person2(name) {
// 属性
this.name = name;
}
// 在原型链上定义要继承的函数
Person2.prototype.introducSelf = function() {
return '大家好,我是' + this.name;
}
// 非原型链方法,属于 Person2 对象自身的函数
Person2.mySelf = function() {
console.log('非原型链上的函数');
}
原型链
原型链是 JavaScript 中实现继承的关键机制。每个对象都有一个 __proto__ 属性,指向其原型对象。当访问对象的属性或方法时,如果对象自身没有该属性或方法,就会沿着原型链向上查找,直到找到该属性或方法为止。
在上面的代码中,Person2.prototype.introducSelf 方法定义在 Person2 的原型对象上。当创建 Person2 对象并调用 introducSelf 方法时,该方法会从原型对象上找到。
函数继承
函数继承是指将一个函数的属性和方法继承到另一个函数中。在上面的代码中,Person2 继承了 Person1 的 introducSelf 方法。
运行示例
const person = new Person2('张三');
person.mySelf(); // 输出: '非原型链上的函数'
注意: 在上面的代码中,Person2.mySelf 函数是一个非原型链方法,它属于 Person2 对象自身。因此,需要使用 Person2.mySelf() 来调用该函数,而不是使用 person.mySelf()。
总结
本文介绍了 JavaScript 中面向对象编程的几个关键概念,包括构造函数、原型链和函数继承。通过理解这些概念,我们可以更好地使用 JavaScript 来创建和管理对象。
原文地址: https://www.cveoy.top/t/topic/os9F 著作权归作者所有。请勿转载和采集!