JavaScript面向对象

一.原型链

复制代码
function Person(n,a){
    return {
        name : n , 
        age :  a
    }
}
Person.prototype.abc=function(){
    console.log("儿子");
}
let person = new Person('张子浩',20);
console.log(person.name);
Person.prototype.abc();
复制代码

定义一个函数,返回这些属性,就犹如C#中对函数封装一样,我们可以对这个函数进行封装。

二.Class类

ES6和ES5中有非常多的不相似点,我们慢慢思考

复制代码
class DBHelper {
    constructor() {}
    getdate () {
        return new Date();
    }
}
// 导出内容
// export default DBHelper = DBHelper;  // ES6 
module.exports = DBHelper;              // ES5
复制代码

通过 module.exports 可以进行公开内容  差不多就pubic。

在第二个class中

复制代码
// import ZZH from './lei2.js'; // ES6
var ZZH = require('./lei2'); // ES5   require.js
// 在 JS 中 所有的 类 都可以看成是 object 的 子类。
class Person{
    // 构造函数
    constructor(n,a){
        this.name = n;
        this.age= a;
    } 
    abc(){
        console.log('hehe');
    }
}
复制代码

通过constructor关键字可以写构造函数,我们还可以在类中写其他的方法.

其中require关键字是可以引用别的lei  差不多就是new关键字   路径可以是绝对路径和相对路径,我们就可以去调用ZZH中的函数了

 三.类的继承

复制代码
// 类的继承
class Student extends Person{

}
let person = new Person('张子浩',20);
console.log(person.name);

let stu = new Student('张建晗',20);
console.log(stu.name);
 
console.log(typeof (person)); // object
console.log(typeof (stu)); // object
 
// 获取对象的 构造函数
console.log(person.constructor);
console.log(stu.constructor);
 
复制代码

类的继承可以通过extends关键字,值得思考的是两者的类型都是object,获取对象的构造函数可以通过constructor

 

posted @   ZaraNet  阅读(185)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示