【学习笔记】JavaScript面向对象编程

【学习笔记】JavaScript面向对象编程

 

什么是面向对象

 

在JavaScript、Java、c#中都有面向对象

在Java中有类和对象,类是一个模板,对象是具体的实例

而在JavaScript中,大家需要换一下思维,它把模板和实例用到了极致

在JavaScript中有个概念叫做原型:

比如定义一个对象,我们想让这个对象有原来已有的对象的属性,比如原先有一个user对象,他有一个方法是跑步,我们想让xiaoming去继承这个方法

var student = {
    name:"wzt",
    age:23,
    run:function () {
        console.log(this.name + 'run.....')
    }
}
​
var xiaoming = {
    name:"xiaoming",
}
​
xiaoming.__proto__ = student;

image-20220915153133499

小明的原型就是student

__ proto __ 就像继承,使xiaoming指向了student

可以随意指向,前面指向student,后面也可以指向其他对象

 

如果想要给student新增一个方法该如何写呢?

 

class 继承

class关键字,是在ES6引入的

定义一个类,类的构造器,方法

class Student{
    constructor(name) {
        this.name = name;
    }
    hello(){
        alert('hello,world');
    }
}
var xiaoming = new Student("小明");

 

继承

class Student{
    constructor(name) {
        this.name = name;
    }
    hello(){
        alert('hello,world');
    }
}
​
class little extends Student{
    constructor(name) {
        super(name);
        this.grade = grade;
    }
    MyGrade(){
        console.log("我的年级是" + this.grade)
    }
}
var xiaoming = new Student("小明");
var xiaohong = new little("小红",5);

image-20220915161200762

 

我们可以看到xiaohong和原型是Student

image-20220915161251393

posted @   GrowthRoad  阅读(15)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示