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 继承了 Person1introducSelf 方法。

运行示例

const person = new Person2('张三');
person.mySelf(); // 输出: '非原型链上的函数'

注意: 在上面的代码中,Person2.mySelf 函数是一个非原型链方法,它属于 Person2 对象自身。因此,需要使用 Person2.mySelf() 来调用该函数,而不是使用 person.mySelf()

总结

本文介绍了 JavaScript 中面向对象编程的几个关键概念,包括构造函数、原型链和函数继承。通过理解这些概念,我们可以更好地使用 JavaScript 来创建和管理对象。

JavaScript 面向对象编程:构造函数、原型链和函数继承

原文地址: https://www.cveoy.top/t/topic/os9F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录