首页 > 编程语言 >JavaScript高级(十)----JavaScript中的类【重述原型链】!

JavaScript高级(十)----JavaScript中的类【重述原型链】!

时间:2024-03-23 14:01:23浏览次数:25  
标签:JavaScript console name age Object ---- Person 原型 重述

 类

在JavaScript其实本来没有类的概念,哪怕是ES5以后的class,严格意义上来说也只是构造函数的语法糖,之所以喜欢称之为类,因为JavaScript也可以面向对象开发。

类的声明
class Person {}

function Person1() {}

// 上面两种写法本质上是一样的
console.log(typeof Person)
console.log(typeof Person1)
类的构造函数

class Person {

    // 一个类只能有一个构造函数
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
}

类的方法

class Person {
    // 构造函数
    constructor(name,age) {
        this.name = name;
        this.age = age;
    }
    
    // 普通的实例方法
    // 创建出来的对象进行访问
    // var p = new Person()
    // p.sayName()
    sayName(){
        console.log(this.name)
    }
    
    // 静态方法
    // Person.sayAge()
    static sayAge(){
        console.log(this.age)
    }
    
    // 类的访问器,也就是Object.defineProperty中的 get 和 set
    get Name() {
        return name;
    }
    
    set Name(newValue) {
        this.name = newValue;
    }
}

再谈JavaScript原型链

在实现真正的继承之前,我们再来看一下一个非常重要的概念:原型链

Object的原型

Object是所有类的父类,它的原型是[Object: null prototype] {},事实上这个原型就是我们最顶层的原型了,从Object直接创建出来的对象的原型都是 [Object: null prototype] {}。

Object特殊的地方

  • 该对象有原型属性,但是它的原型属性已经指向的是null,也就是已经是顶层原型了;
var obj = {} console.log(obj.__proto__) //[Object: null prototype] {} console.log(obj.__proto__.__proto__) null
  • 该对象上有很多默认的属性和方法

  • 该对象是所有类的父类
  •     function Person(name, age){
            this.name = name;
            this.age = age;
        }
        
        var p1 = new Person("why",18);
    



 

标签:JavaScript,console,name,age,Object,----,Person,原型,重述
From: https://blog.csdn.net/m0_66468899/article/details/136964255

相关文章

  • PAT乙级 1062 最简分数 C语言
    最简分数一个分数一般写成两个整数相除的形式:N/M,其中M不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数N1​/M1​和N2​/M2​,要求你按从小到大的顺序列出它们之间分母为K的最简分数。输入格式:输入在一行中按N/M的格式给出两个......
  • 游戏开发:服务器部署监控告警
    线上服务器的监控告警,我们暂且从三个层级上分析;业务层:业务相关的日志告警机制。跟业务设计强相关,比如客户端的业务上行请求数据异常之类的告警,业务上定义日志级别(INFO/WARN/ERROR),输出到指定日志文件并通过业务层逻辑抛出,数据分析的埋点、业务行为相关的辅助日志都在这里实现;一套......
  • PAT乙级 1055 集体照 C语言
    集体照拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下:每排人数为N/K(向下取整),多出来的人全部站在最后一排;后排所有人的个子都不比前排任何人矮;每排中最高者站中间(中间位置为m/2+1,其中m为该排人数,除法向下取整);每排其他人以中间人为轴,按身高......
  • 阿里云服务器安装mysql后本地连接失败
    阿里云服务器安装mysql后本地连接失败一、问题描述在阿里云安装mysql后,想在本地电脑用可视化工具连接mysql,但是提示连接失败错误如图所示:二、问题分析1、检查3306端口首先,检查阿里云服务器的安全组是否开放了3306端口可以看到,我已经放行了3306端口。2、检查防火墙我选......
  • JavaScript高级(九)---JavaScript的六种继承方式
    1、原型继承实现:1234567functionSuper(){this.a=1}Super.prototype.say=function(){console.log(‘hhh')}functionSub(){}Sub.prototype=newSuper()consttest=newSub()console.log(test.say())//hhh优点:通过原型继承多个引用类型的属性和......
  • 决策树模型(1)总体介绍
    决策树总体介绍决策树模型顾名思义就是通过一条条的决策来将样本划分来从而达到分类或回归的目的。决策树模型呈树形结构,下图粗略展示了一个分类决策树其中圆表示特征,方块表示叶子节点也是最终分类的类别,我们通过利用样本中高价值的特征(房子拥有情况,工作的拥有情况)来构建这......
  • PAT乙级 1054 求平均值 C语言
    本题的基本要求非常简单:给定N个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是[−1000,1000]区间内的实数,并且最多精确到小数点后2位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数N(≤100)。随......
  • lc2528 最大化城市的最小电量
    给定数组st[n],其中st[i]表示第i座城市的供电数目,每个供电站的供电范围是r,一座城市的电量是所有能给它供电的供电站数目之和,现在还可建k座发电站,求所有城市中最小电量的最大值。1<=n<=1e5;0<=st[i]<=1e5;0<=r<n;0<=k<=1e9最大化最小值,或者最小化最大值,常用的方法是二分答案。......
  • 基于ssm+vue.js的中学课内小说阅读与学习系统附带文章和源代码设计说明文档ppt
    文章目录前言详细视频演示具体实现截图技术栈![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/26c90735e94d4c69bdcaca3dff0c2d21.png)后端框架SSM前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参......
  • 基于ssm+vue.js的网络音乐系统附带文章和源代码设计说明文档ppt
    文章目录前言详细视频演示具体实现截图技术栈后端框架SSM前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......