当前位置: 首页 > news >正文

段友做的看电影网站网站建设公司渠道

段友做的看电影网站,网站建设公司渠道,网站建设知识及维护技巧,搜索引擎关键词竞价排名在现代编程语言中,类是面向对象编程范式中的核心概念之一。 与函数类似,类本质上是一种特殊的函数,它允许我们将数据和操作封装在一起,以创建具有共同行为和状态的对象。 在类的世界里,我们有类表达式和类声明&#xf…

在现代编程语言中,类是面向对象编程范式中的核心概念之一。
与函数类似,类本质上是一种特殊的函数,它允许我们将数据和操作封装在一起,以创建具有共同行为和状态的对象。
在类的世界里,我们有类表达式和类声明,它们各自具有自己的特性和用途。

✨ 类本质上是一种特殊的函数。所以和函数一样,有类表达式和类声明

类声明

函数不同,类声明不会被提升。这意味着在使用类之前,需要先进行类声明。类声明通常包括构造函数和其他成员方法。构造函数是一个特殊的方法,用于创建和初始化类所创建的对象。

// 类声明
class Rectangle {constructor(height, width) {this.height = height; // 实例成员this.width = width;}
}let p = new Rectangle();

类表达式

  • 类表达式可以命名,也可以不命名
  • 我们可以通过类的name属性来检索
// 未命名/匿名类
let Rectangle = class {constructor(height, width) {this.height = height;this.width = width;}
};
console.log(Rectangle.name);
// output: "Rectangle"// 命名类
// 命名类表达式的名称是该类体的局部名称。
let Rectangle = class Rectangle2 {constructor(height, width) {this.height = height;this.width = width;}
};
console.log(Rectangle.name);
// 输出:"Rectangle2"

类的定义

  • {}中的部分叫做类体。
  • 类体中会包括:
    • 构造函数

      • constructor方法是一个特殊的方法,这种方法用于创建和初始化一个由class创建的对象。
      • 注意⚠️:一个类体中只能有一个constructor方法
      • 使用 super 关键字来调用一个父类的构造函数
    • 原型方法

      class Rectangle {// constructorconstructor(height, width) {
      // 实例的属性必须定义在类的方法里this.height = height;this.width = width;}// Getterget area() {return this.calcArea();}// MethodcalcArea() {return this.height * this.width;}
      }
      const square = new Rectangle(10, 10);console.log(square.area);
      // 100
      
    • 静态方法

      • static来定义静态方法,只能被类访问
      class Point {constructor(x, y) {this.x = x;this.y = y;}static displayName = "Point";static distance(a, b) {const dx = a.x - b.x;const dy = a.y - b.y;return Math.hypot(dx, dy);}
      }const p1 = new Point(5, 5);
      const p2 = new Point(10, 10);
      p1.displayName;
      // undefined
      p1.distance;
      // undefinedconsole.log(Point.displayName);
      // "Point"
      console.log(Point.distance(p1, p2));
      // 7.0710678118654755
      
    • getter和setter

  • 类体中遵循严格模式

this指向

类中

  1. 类体中的成员方法遵循严格模式。this在类方法中的行为与传统函数有所不同。在调用静态或原型方法时,this默认指向undefined,但在非严格模式下,会自动装箱以保留传入状态。

  2. 当被调用时。谁调用,指向谁

    class Animal {
    // 原型方法speak() {return this;}
    // 静态方法static eat() {return this;}
    }let obj = new Animal();
    obj.speak(); // Animal {}
    let speak = obj.speak;
    speak(); // undefinedAnimal.eat(); // class Animal
    let eat = Animal.eat;
    eat(); // undefined
    

传统函数中

在非严格模式下调用函数,会发生自动装箱。即如果初始值时undefined,则this指向全局对象。

function Animal() {}Animal.prototype.speak = function () {return this;
};Animal.eat = function () {return this;
};let obj = new Animal();
let speak = obj.speak;
speak(); // global objectlet eat = Animal.eat;
eat(); // global object

字段声明

公有字段

  1. 不需要let, const等关键字
  2. 预先声明
class Rectangle {height = 0;width;constructor(height, width) {this.height = height;this.width = width;}
}

私有字段

  1. 只能在类内部读取,外部无法调用。
  2. 私有字段仅能在字段声明中预先定义。
class Rectangle {#height = 0;#width;constructor(height, width) {this.#height = height;this.#width = width;}
}

extends

我们可以创建一个子类来扩展父类的功能。子类继承了父类的属性和方法,并可以在其基础上进行扩展或重写。

class Father {constructor(name) {this.name = name;}speak() {console.log(`${this.name} makes a noise.`);}
}class Son extends Father {constructor(name) {super(name); // 调用超类构造函数并传入 name 参数}speak() {console.log(`${this.name} barks.`);}
}var d = new Son("Mitzie");
d.speak(); // 'Mitzie barks.'

super

super 关键字用于调用对象的父对象上的函数.

class Father {constructor(name) {this.name = name;}speak() {console.log(this.name + " makes a noise.");}
}class Son extends Father {speak() {super.speak();console.log(this.name + " roars.");}
}

| 本文参考:MDN

http://www.yayakq.cn/news/48660/

相关文章:

  • 新闻类网站html模板免费下载网站建设擎宇
  • dw软件做的网站怎么发到网上做卷子的网站
  • 网站整站源码下载做网站外包群
  • 做网络推广的公司网站没有备案可以做seo优化吗
  • dede手机网站模板修改wordpress怎么加地图
  • 免备案的网站空间郑州制作网页哪家好
  • 电商网站构建预算方案谷德设计网打不开
  • 网站如何做服务器授权书wordpress代码生成器
  • 北京专业seo做网站和优化
  • sql注入网站建设百度云个人名义做网站能备案吗
  • 本地电脑如何做网站服务器免费虚拟主机空间互联
  • 吉林做网站福州网站建设自助建站
  • wordpress网站维护教程视频网站界面设计
  • 做得不好的知名企业网站月夜直播在线观看视频免费播放
  • 微信营销网站建设网站开发技术笔记
  • 国外网站用什么dns好网站建立不安全
  • 购买服务器做网站徐州建站服务
  • 网站美工设计公司电话wordpress 怎么添加插件
  • 网站建设 邯郸网站制作wordpress 主机安装教程
  • 20个外国平面设计网站龙华营销型网站费用
  • 东莞网站建设网站建立网站如何优化关键词排名
  • 黄山建设网站公司电话号码南充网站建设
  • 哪个网站可以学做衣服企业网站建设的基本原则有哪些?
  • 网站制作软件工程师色系网站.
  • 招聘网站简历数据分析怎么做树莓派用wordpress
  • 网站投票活动怎么做2024年3月新冠高峰
  • 论坛网站模微网站方案怎么写
  • 沧州做网站电子网站建设
  • 长沙设备建站按效果付费大学生网页设计期末作业
  • 政协网站建设意义网络推广计划的三个步骤